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-Key: 235291

Url: https://administrator.de/contentid/235291

Printed on: April 19, 2024 at 21:04 o'clock

Member: colinardo
colinardo Apr 11, 2014 updated at 09:54:17 (UTC)
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
Member: ivaylo53
ivaylo53 Apr 11, 2014 at 10:09:12 (UTC)
Goto Top
Hallo colinardo,

hat sehr gut Funktioniert.

Vielen Dank für die schnelle Hilfe