Samstag, 23. November 2013

Powershell: Active Directory prüfen, ob User in gewisser Gruppe enthalten ist

Hier ein kleines Code-Beispiel um mit Powershell herauszufinden, ob ein gewisser User Mitglied in einer bestimmten Gruppen im Active Directory (AD) ist. Wenn die Mitgliedschaft übereinstimmt wird der User aus der Gruppe gelöscht, wenn er kein Mitglied ist bleibt alles wie vorher.

Import-Module ActiveDirectory

$groups = @("") # Array speichert alle Gruppen der OU's 

$groupObj = Get-ADGroup 'Gruppenname' # Object der zu überprüfenden Gruppe
# ganze OU auslesen und nach Gruppen filtern
$groups = Get-ADObject -Filter {Name -Like "*"} -Searchbase "OU=myOU,OU=folder,DC=mydomain,DC=local"
#$groups | Sort-Object
echo 'Gruppen'
echo $groups


# für jede Gruppe dessen Mitglieder auslesen
foreach($element in $groups)
    {
        $members = Get-ADGroupMember $element
        echo 'Member der group'$element
        echo $members
        # für jedes Gruppenmitglied prüfen ob in gwisser Gruppe enthalten. Wenn ja User löschen, Wenn nein User behalten

        foreach($user in $members)
            {
                $userObj = Get-ADUser $user -properties memberof
                #echo $userObj
               
                if ($userObj.memberof -match $groupObj.DistinguishedName)
                {
                    echo 'delete'$userObj
                    # User aus der Gruppe löschen
                    Remove-ADGroupMember $element -Member $userObj -Confirm:$false
                }
               
            }
    }

Keine Kommentare:

Kommentar veröffentlichen