Heute sollte ich ein Powershellskript entwickeln, mit dem man einen Benutzer/Computer aus einer Sammlung löschen kann. Hier ist das Ergebnis.
Bei der Ausführung des Skripts müssen die Variablen “CollectionID” und “Benutzerkonto” definiert werden (z.B. ONT0001A und hhesse).
Param
(
[parameter(mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string]
$CollID,
[parameter(mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string]
$MemberName
)
$Coll = [WMI]“ROOT\SMS\Site_<Site Code>:SMS_Collection.CollectionID=’$CollID’”
Wenn ein Benutzer zu einer Sammlung hinzugefügt wird (z.B. hhesse), ist der Membership Rule Name als “<Domain>\<Benutzerkonto> (<Full Name>)” (z.B.”Contoso\hhesse (Hermann Hesse)”) in Configuration Manager angelegt. In diesem Fall muss man den Membership Rule Name herausfinden. (die Benutzersammlungen in Configuration Manager haben den Wert “1″ als CollectionType).
if ($Coll.CollectionType -eq 1)
{
$MemberName = $($Coll.CollectionRules | Where{$_.RuleName -match “$MemberName”}).RuleName
}
Bei Ausfürung der DeleteMembershipRule Methode des Collection-Objekts wird dann der Eintrag (Benutzer/Computer) aus der Sammlung gelöscht.
$Coll.DeleteMembershipRule($($Coll.CollectionRules | Where{$_.RuleName -eq “$MemberName”}))
Tags: Powershell, Script