ivaylo53
Goto Top

Wert aus Array ausschliessen PowerShell

Guten Morgen Community,

irgendiwe komme ich bei diesem Problem nicht weiter.

Ich habe Zwei Objekte $alCSVUser und $alADUser. Diese will ich verglichen und bei nicht übereinstimmung die User aus der AD löschen.

Inhalt der $alCSVUser

Maier.Christina
Schlosser.Florian
Christ.Justus
Mueller.Stefan

Inhalt der $alADUser

Administrator
Gast
krbtgt
Maier.Christina
Schlosser.Florian
Christ.Justus
Mueller.Stefan

Wie kann ich jetzt die Ersten drei einträge aus der $alADUser aus den vergleich ausschliessen, denn sonst werden Administrator, Gast und krbtgt gelöscht werden, da sie nicht in der CSV Existieren.

Habe es auch schon versucht wenn ich die Drei User in der CSV einfüge, was zu fehler Meldungen führt.

Content-ID: 235291

Url: https://administrator.de/forum/wert-aus-array-ausschliessen-powershell-235291.html

Ausgedruckt am: 22.12.2024 um 23:12 Uhr

colinardo
colinardo 11.04.2014 aktualisiert um 11:54:17 Uhr
Goto Top
$alADUsers = $alADUsers | ?{$_ -notmatch "^Administrator$|^Gast$|^krbtgt$"}
Du kannst damit deine Liste der User aber direkt mit Get-ADUser filtern:
$alADUsers = Get-ADUser -Filter * | ?{$_.SamAccountName -notmatch "^Administrator$|^Gast$|^krbtgt$"} | select -Expand SamAccountName
ab Powershell 3.0 gibt es auch den Operator -notin dem man einfach ein Array aus Strings übergibt anstatt mit RegularExpressions zu nutzen:
..... |  ?{$_.SamAccountName -notin @("Administrator","Gast","krbtgt")}
Grüße Uwe
ivaylo53
ivaylo53 11.04.2014 um 12:09:12 Uhr
Goto Top
Hallo colinardo,

hat sehr gut Funktioniert.

Vielen Dank für die schnelle Hilfe