Es gibt wahrscheinlich eine einfache Möglichkeit, dies zu tun, aber ich habe an diesem Punkt stundenlang gegen eine Wand geschlagen. Ich versuche, mehrere Benutzerattribute aus AD zu extrahieren, zwei dieser Attribute zu vergleichen und sie dann basierend auf den Unterschieden zu ändern. diejenigen, die schon in anderen Arrays mit einem -replace, um loszuwerden, die NULL-Werte jedoch, da einige Nutzer entweder für ihr Büro oder Abteilung Felder Nullwerte haben, die bewirkt, dass die Vergleichsobjekt zum Scheitern verurteilt, ich habe, so sehen meine Variablen wie folgt aus:Vergleichen von Arrays in Powershell
$UserData = Get-ADuser -filter * -properties physicaldeliveryofficename,department | select samaccountname,physicaldeliveryofficename,department
$Offices = $UserData.physicaldeliveryofficename -replace "^$","N/A"
$Departments = $UserData.department -replace "^$","N/A"
so weit so gut, aber wenn ich Schleife durch Werte zu vergleichen, beginne ich in Schwierigkeiten zu laufen. Looping durch die Benutzer wie dies scheint jedes Element zu jedem anderen Elemente zu vergleichen:
Foreach ($user in $UserData.samaccountname) {
Compare-object $offices $departments -includeqeual}
Während nicht eine Schleife mit und unter Verwendung von Vergleichs-Objekt selbst gibt genaue Ergebnisse, aber dann würde ich eine Schleife müssen prüfen für Spiele sowieso.
Angenommen, ich möchte nur herausfinden, welche Benutzer übereinstimmende Büro- und Abteilungsfelder haben (und basierend auf einem ziemlich einfachen Set-ADUser-Befehl). Wie würde ich die Werte vergleichen, ohne jedes Element auf jedes andere Element zu überprüfen?
Arbeitete wie ein Charme! –