AD Benutzer einer OU automatisiert einer AD Gruppe Zuweisen und entfernen

31. Januar 2023 durch
Zohles IT-Systems, André Zohles

 



In vielen Unternehmen werden die Benutzer im Active Directory angelegt und gepflegt. In den meisten Unternehmen bildet das Active Directory Anhand der Organisationseinheiten (OU) auch die Struktur des Unternehmens ab. 

Anhand dieser Zuordnung erfolgen in den meisten fällen auch die zuteilung der Berechtigungen. 

Da man auf FileServer keine OU in der Berechtigung verwendet kann ist es nötig dafür jeweils eine Gruppe zu bilden und anschließend auch zu Pflegen. 

Mit dem Folgenden Powershell Snippet kann man diese Gruppen Befüllen

Hinzufügen von Benutzern


#<---------------------------------------------------------[Gruppen Befüllung]--------------------------------------------------------
# Füge OU User zur Gruppe hinzu
$ADGroupname = 'CN=G_ADMINGRUPPE-TEST,OU=Groups,OU=Unternehmen,DC=intern,DC=example,DC=de'
$OUpath = 'OU=Admins,OU=Users,OU=Unternehmen,DC=intern,DC=example,DC=de'
$ADUsers = get-aduser -Filter * -SearchBase $OUpath -SearchScope OneLevel | select SamAccountName, Name, UserPrincipalName

foreach ($ADUser in $ADusers)
{
write-host ("Füge " + $ADUser.Name + " zur Gruppe hinzu")
Add-ADGroupMember -Identity $ADGroupname -Members $ADUser.SamAccountName -ErrorAction SilentlyContinue
}
#>

Folgende Werte müssen auf ihre Umgebung angepasst werden 

$ADGroupname 
$OUpath

Entfernen von Benutzern


#<---------------------------------------------------------[Gruppen Bereinigung]--------------------------------------------------------
# Entferner der nicht benötigten User aus der Gruppe
$ADGroupname = 'CN=G_ADMINGRUPPE-TEST,OU=Groups,OU=Unternehmen,DC=intern,DC=example,DC=de'
$OUpath = '*OU=Admins,OU=Users,OU=Unternehmen,DC=intern,DC=example,DC=de'
$members = Get-ADGroupMember -Identity $ADGroupname

foreach($member in $members)
{
if ($member.distinguishedname -notlike $OUpath)
{
Write-host ("Benutzer: " + $member.SamAccountName + " Befindet sich nicht in der OU und wird entfernt") -ForegroundColor yellow
Remove-ADGroupMember -Identity $ADGroupname -Members $member.samaccountname -Confirm:$false
}
else
{
Write-host ("Benutzer: " + $member.SamAccountName + " bleibt in der Gruppe") -ForegroundColor Green
}

}
#>

Folgende Werte müssen auf ihre Umgebung angepasst werden 

$ADGroupname 
$OUpath
in Blog