logo

Hinzufügen und Entfernen von Active Directory-Gruppen und -Gruppenobjekten mit PowerShell

Microsoft Active Directory ermöglicht eine zentrale Administration, Autorisierung und Authentifizierung. Der Zugriff auf Netzwerkressourcen wird in Active Directory Sicherheitsprinzipalen gewährt, zu denen beispielsweise Benutzer- und Computerkonten gehören. Diese Berechtigungen können sich im Laufe der Zeit ändern. Um die Zugriffsverwaltung zu vereinfachen und die Sicherheit zu verbessern, konfigurieren mittlere und große Unternehmen oft Active Directory-Sicherheitsgruppen, die Benutzerkonten, Computerkonten und andere Gruppen enthalten können. Ebenfalls häufig verwendet werden Verteilergruppen zur Verwaltung von E-Mail-Verteilerlisten. Sowohl Sicherheitsgruppen als auch Verteilergruppen verfügen über eindeutige Sicherheits-IDs (SIDs) und global eindeutige IDs (GUIDs).

Das MMC-Snap-in „Active Directory-Benutzer und -Computer“ ist hervorragend für die Verwaltung beider Gruppentypen geeignet, doch mit PowerShell können auch sehr viele Gruppen gleichzeitig effizient verwaltet werden.

In diesem Artikel wird die Verwaltung von Active Directory-Gruppen mit Windows PowerShell-Skripts erläutert. Insbesondere erhalten Sie Anleitungen für diese Aufgaben:

Wenn Sie mit Active Directory-Gruppen und der Verwaltung von Gruppen noch nicht vertraut sind, lesen Sie bitte zunächst den Leitfaden „Best Practices zur Verwaltung von Active Directory-Gruppen“.

Beachten Sie bitte, dass Sie zur Verwendung der hier vorgestellten PowerShell-Skripts das Modul für die Interaktion mit Active Directory – das Active Directory-Modul für Microsoft Windows PowerShell – importieren müssen. Dieses Modul wurde mit Windows Server 2008 R2 eingeführt und ist ab Windows Server 2012 standardmäßig aktiviert. Mit dem folgenden Befehl können Sie eine vollständige Liste der Cmdlets des Active Directory-Moduls anzeigen:

Get-Command -Module ActiveDirectory

Die Liste umfasst 147 Cmdlets, von denen jedoch nur diese elf für Active Directory-Gruppen relevant sind:

  • Add-ADGroupMember
  • Add-ADPrincipalGroupMembership
  • Get-ADAccountAuthorizationGroup
  • Get-ADGroup
  • Get-ADGroupMember
  • Get-ADPrincipalGroupMembership
  • New-ADGroup
  • Remove-ADGroup
  • Remove-ADGroupMember
  • Remove-ADPrincipalGroupMembership
  • Set-ADGroup

Erstellen von Active Directory-Gruppen mit PowerShell

Zur Erstellung von Active Directory-Gruppen verwenden Sie das Cmdlet „New-ADGroup“. Mit dem folgenden Befehl können Sie die Syntax anzeigen:

Get-Command New-ADGroup –Syntax

Die einfachste Methode für die Erstellung einer Gruppe ist die Ausführung dieses kurzen Skripts:

New-ADGroup "Group Name"

Das System fordert Sie auf, den Parameter „GroupScope“ festzulegen, und erstellt dann eine neue Gruppe. Für diese Gruppe sind jedoch Standardwerte definiert:

  • Sie wird im Standard-LDAP-Container „Benutzer“ erstellt.
  • Sie verfügt über den Gruppentyp „Sicherheit“.
  • Die Felder „Mitglieder“, „Mitglied von“, „Beschreibung“, „E-Mail“ und „Hinweise“ sind leer.

Angenommen, Sie möchten die Sicherheitsgruppe „Quality“ auf Ihrem AD-Domänen-Controller erstellen. Verwenden Sie die folgenden Parameter:  Sie sollte in der Organisationseinheit „Production“ (-Path) als Sicherheitsgruppe (-GroupCategory) erstellt werden und global verfügbar sein (-GroupScope).

New-ADGroup "Quality" -Path "OU=Production,DC=enterprise,dc=com" -GroupCategory Security -GroupScope Global -PassThru –Verbose


Wenn Sie eine universelle Verteilergruppe erstellen möchten, ändern Sie einfach den Parameter „–GroupCategory“ zu „Distribution“ und den Parameter „–GroupScope“ zu „Universal“. Durch Ändern des Parameters „–Path“ können Sie außerdem den LDAP-Pfad ändern.

Löschen von Active Directory-Gruppen mit PowerShell

Um eine Active Directory-Gruppe zu löschen, verwenden Sie das Cmdlet „Remove-ADGroup“. Das einfachste Skript hierfür sieht wie folgt aus:

Remove-ADGroup -Identity Quality

Sie werden aufgefordert, den Löschvorgang zu bestätigen.

Hinzufügen von Benutzern und Computern zu einer Gruppe mit PowerShell

Mit dem Cmdlet „Add-AdGroupMember“ können Sie Benutzer zu einer Active Directory-Gruppe hinzufügen. Um beispielsweise die beiden Benutzer B.Jackson und E.Franklin zur Gruppe „Quality“ hinzuzufügen, können Sie dieses Skript verwenden:

Add-AdGroupMember -Identity Quality -Members B.Jackson, E.Franklin

Nach dem Hinzufügen von Benutzern zu einer Sicherheitsgruppe können Sie mit dem Skript unten überprüfen, ob sie als Mitglieder der Gruppe angezeigt werden:

Get-ADGroupMember -Identity Quality


Wenn Sie Benutzer zu einer anderen Sicherheitsgruppe oder einer Verteilergruppe (z. B. „Domänen-Admins“) hinzufügen möchten, geben Sie für den Parameter „–Identity“ den Wert „Domänen-Admins“ an. Wenn ein Gruppe Mitglied einer anderen Gruppe sein soll, legen Sie den Namen der entsprechenden Gruppe als Wert für den Parameter „–Members“ fest. Dasselbe Prinzip gilt auch für Computerkonten. Sie müssen lediglich ein Dollar-Zeichen ($) an das Ende des Namens des Computerkontos anfügen. Um beispielsweise den Computer „WKS043“ zu einer Gruppe hinzuzufügen, legen Sie „WKS043$“ als Wert für den Parameter „–Member“ fest:

Add-AdGroupMember -Identity Quality -Members WKS043$

Hinzufügen eines Benutzers zu mehreren Gruppen

Um einen Benutzer zu mehreren Gruppen gleichzeitig hinzuzufügen, führen Sie das folgende Skript aus.

"Managers","Quality" | Add-ADGroupMember -Members `
    (Read-Host -Prompt "Enter User Name")

Sie werden aufgefordert, den Benutzernamen einzugeben.

Hinzufügen von Benutzern zu einer Gruppe aus einer CSV-Datei

Wenn Sie sehr viele Benutzer zu einer Gruppe hinzufügen möchten, können Sie diese Benutzer in einer CSV-Datei auflisten und die Datei anschließend importieren. Beachten Sie bitte, dass die Liste der Benutzernamen in der CSV-Datei in der Spalte „users“ wie unten gezeigt die SamAccountName-Werte enthalten muss:

Um Benutzer aus einer CSV-Datei zur Gruppe hinzuzufügen, führen Sie das folgende PowerShell-Skript aus:

Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity "Quality" -members $_.users}

Kopieren von Benutzern in eine andere Gruppe

Um alle Mitglieder einer Gruppe in eine andere Gruppe zu kopieren, führen Sie das folgende Skript aus:

Get-ADGroupMember “Quality” | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “QualityControl” -Members $_}

Entfernen von Benutzern oder Computern aus einer Gruppe

Für das Entfernen eines Benutzers aus einer Gruppe verwenden Sie das Cmdlet „Remove-ADGroupMember“.

Remove-ADGroupMember -Identity Quality -Members J.Robinson


Um ein Computerkonto aus einer Gruppe zu entfernen, legen Sie den Computernamen mit einem Dollar-Zeichen ($) am Ende als Wert für den Parameter „-Members“ fest.

Entfernen mehrerer Benutzerkonten aus einer Gruppe

Sie können ganz einfach mehrere Benutzer aus einer Active Directory-Gruppe entfernen, indem Sie eine CSV-Datei mit der Liste der Benutzernamen erstellen und diese Benutzer dann mit folgendem Skript aus dem Gruppenobjekt entfernen:

Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity "Quality" -members $_.users}

Entfernen eines Benutzers aus allen Gruppen

Um einen Benutzer aus allen Gruppen zu entfernen, führen Sie dieses Skript aus:

Get-ADUser -Identity E.Franklin -Properties MemberOf | ForEach-Object {
  $_.MemberOf | Remove-ADGroupMember -Members $_.DistinguishedName -Confirm:$false
}


Beachten Sie bitte, dass der Benutzer alle Gruppenzugehörigkeiten mit Ausnahme der Zugehörigkeit zur Gruppe „Domänenbenutzer“ verliert. Aus dieser Gruppe kann er bei Bedarf manuell entfernt werden.

Erstellen von Berichten zu Active Directory-Gruppen

Sie wissen nun, wie Sie mithilfe von PowerShell typische Aufgaben bei der Verwaltung von Active Directory-Gruppen ausführen können. Als Nächstes erstellen Sie einen Bericht zu den in Active Directory vorhandenen Gruppen:

Um alle Gruppen in Active Directory aufzulisten, verwenden Sie das Skript unten:

Get-ADGroup -filter * -properties GroupCategory | ft name,groupcategory


Natürlich ist es auch sinnvoll, zu überprüfen, welche Benutzer Mitglied einer Active Directory-Gruppe sind und welche Änderungen an den Gruppenzugehörigkeiten vorgenommen wurden. Über die Links unten können Sie Anleitungen für diese komplexeren Aufgaben abrufen:

Zusammenfassung

In diesem Artikel haben Sie erfahren, wie Sie Gruppen und Gruppenzugehörigkeiten in Active Directory mithilfe von PowerShell-Skripts verwalten. Versuchen Sie nun, einige dieser Aufgaben zur Verwaltung von Gruppen selbst auszuführen. Lassen Sie dabei jedoch Vorsicht walten und vergessen Sie nicht, den Active Directory-Papierkorb zu aktivieren, damit Sie unerwünschte Änderungen einfach wieder rückgängig machen können. Denken Sie daran, dass Sie mit dem MMC-Snap-in „Active Directory-Benutzer und -Computer“ Gruppen und Gruppenzugehörigkeiten verwalten können, PowerShell jedoch besser für die Verwaltung sehr vieler Gruppen gleichzeitig geeignet ist.

Tutorial zur Skripterstellung  mit Windows PowerShell für Einsteiger