So fügen Sie AD-Gruppen hinzu und entfernen Objekte in Gruppen mit PowerShell
Jun 19, 2018
Microsoft Active Directory dient als zentraler Punkt für die Verwaltung, Autorisierung und Authentifizierung. In AD wird der Zugriff auf Netzwerkressourcen Sicherheitsprinzipalen wie Benutzerkonten und Computerkonten gewährt, und diese Berechtigungen können sich im Laufe der Zeit ändern. Um das Zugriffsmanagement zu vereinfachen und die Sicherheit zu verbessern, nutzen mittlere und große Unternehmen oft Active Directory-Sicherheitsgruppen, die Benutzerkonten, Computerkonten und andere Gruppen enthalten können. Sie verwenden auch häufig Verteilergruppen, um E-Mail-Verteilerlisten zu verwalten. Sowohl Sicherheits- als auch Verteilergruppen haben eindeutige Sicherheitsidentifikatoren (SIDs) und global eindeutige Identifikatoren (GUIDs).
Ausgewählte verwandte Inhalte:
Das ADUC MMC-Snap-In ist hervorragend geeignet, um beide Gruppenarten zu verwalten, aber PowerShell ist ein viel effizienterer Weg, um sie in großen Mengen zu verwalten.
Wenn Sie noch nicht mit AD-Gruppen und Gruppenverwaltung vertraut sind, lesen Sie bitte den Leitfaden Active Directory Group Management Best Practice bevor Sie fortfahren.
Beachten Sie auch, dass Sie zum Verwenden dieser PowerShell-Skripte das Modul für die Interaktion mit AD importieren müssen — das Active Directory Modul für Microsoft Windows PowerShell. Dieses Modul wurde in Windows Server 2008 R2 eingeführt und ist in Windows Server 2012 und späteren Versionen standardmäßig aktiviert. Die vollständige Liste der AD-Modul-Cmdlets erhalten Sie, indem Sie den folgenden Befehl ausführen:
Get-Command -Module ActiveDirectory
Die vollständige Liste enthält 147 Cmdlets; jedoch beziehen sich nur diese elf auf Active Directory-Gruppen:
- Add-ADGroupMember
- Add-ADPrincipalGroupMembership
- Get-ADAccountAuthorizationGroup
- Get-ADGroup
- Get-ADGroupMember
- Get-ADPrincipalGroupMembership
- New-ADGroup
- Remove-ADGroup
- Remove-ADGroupMember
- Remove-ADPrincipalGroupMembership
- Set-ADGroup
Erstellen einer Active Directory-Gruppe mit PowerShell
Um eine AD-Gruppe zu erstellen, verwenden Sie das Cmdlet New-ADGroup. Sie können die Syntax erhalten, indem Sie den folgenden Befehl ausführen:
Get-Command New-ADGroup –Syntax
Der einfachste Weg, eine Gruppe zu erstellen, ist das Ausführen dieses kurzen Skripts:
New-ADGroup "Group Name"
Das System wird Sie bitten, den „GroupScope“-Parameter anzugeben, und dann wird es eine neue Gruppe erstellen. Diese Gruppe wird jedoch Standardwerte haben, wie zum Beispiel:
- Es wird im standardmäßigen LDAP-Container namens „Users“ erstellt.
- Es wird den Gruppentyp „Security“ haben.
- Die Felder für Mitglieder, Mitglied von, Beschreibung, E-Mail und Notizen werden alle leer sein.
Stellen wir uns vor, wir möchten eine Sicherheitsgruppe namens „Quality“ auf unserem AD DC erstellen. Verwenden wir die folgenden Parameter: Sie sollte in der „Production“-OU (-Path) sein, es sollte eine Sicherheitsgruppe (-GroupCategory) sein und sie sollte global (-GroupScope) sein.
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 –GroupCategory Parameter zu „Distribution“ und den –GroupScope Parameter zu „Universal“. Sie können auch den LDAP-Pfad ändern, indem Sie den –Path Parameter ändern.
Löschen einer Active Directory-Gruppe mit PowerShell
Um eine AD-Gruppe zu löschen, verwenden Sie das Cmdlet Remove-ADGroup. Das einfachste Skript dafür sieht folgendermaßen aus:
Remove-ADGroup -Identity Quality
Sie werden aufgefordert, das Löschen der Gruppe zu bestätigen.
Hinzufügen von Benutzern und Computern zu einer Gruppe mit PowerShell
Sie können Benutzer mit dem Add-AdGroupMember-Cmdlet zu einer AD-Gruppe hinzufügen. Wenn Sie beispielsweise zwei Benutzer, B.Jackson und E.Franklin, zur Gruppe „Quality“ hinzufügen müssten, würde das Skript folgendermaßen aussehen:
Add-AdGroupMember -Identity Quality -Members B.Jackson, E.Franklin
Nachdem Sie Benutzer zu einer Sicherheitsgruppe hinzugefügt haben, können Sie das untenstehende Skript ausführen, um zu überprüfen, ob sie als Mitglieder aufgeführt sind:
Get-ADGroupMember -Identity Quality
Wenn Sie Benutzer zu einer anderen Sicherheits- oder Verteilergruppe hinzufügen müssen, wie zum Beispiel „Domain Admins“, geben Sie „Domain Admins“ als Wert für den Parameter –Identity an. Wenn eine Gruppe Mitglied einer anderen sein soll, geben Sie einen Gruppennamen als Wert für den Parameter –Members an. Das gleiche Prinzip gilt für Computerkonten, aber Sie müssen ein Dollarzeichen ($) am Ende des Computernamen anhängen. Zum Beispiel, um den Computer „WKS043“ zu einer Gruppe hinzuzufügen, geben Sie „WKS043$“ als Wert für den Parameter –Member an:
Add-AdGroupMember -Identity Quality -Members WKS043$
Ausgewählte verwandte Inhalte:
Einen Benutzer zu mehreren Gruppen hinzufügen
Um einen Benutzer gleichzeitig zu mehreren Gruppen hinzuzufügen, führen Sie das folgende Skript aus.
"Managers","Quality" | Add-ADGroupMember -Members `
(Read-Host -Prompt "Enter User Name")
Benutzer aus einer CSV-Datei zu einer Gruppe hinzufügen
Wenn Sie eine große Anzahl von Benutzern zu einer Gruppe hinzufügen möchten, können Sie diese in einer CSV-Datei angeben und dann diese Datei importieren. Beachten Sie, dass die Liste der Benutzernamen in der CSV-Datei die SamAccountNames in der Spalte „Benutzer“ enthalten muss.
Um Benutzer aus einer CSV-Datei zu einer Gruppe hinzuzufügen, führen Sie das folgende PowerShell-Skript aus:
Import-CSV C:scriptsusers.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity "Quality" -members $_.users}
Benutzer von einer Gruppe in eine andere kopieren
Wenn Sie alle Mitglieder von einer Gruppe in eine andere Gruppe kopieren möchten, 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
Um einen Benutzer aus einer Gruppe zu entfernen, verwenden Sie das Cmdlet Remove-ADGroupMember:
Remove-ADGroupMember -Identity Quality -Members J.Robinson
Um ein Computerkonto aus einer Gruppe zu entfernen, geben Sie den Computernamen mit einem Dollarzeichen ($) am Ende für den Wert des Parameters -Members an.
Entfernen mehrerer Benutzerkonten aus einer Gruppe
Eine einfache Methode, um mehrere Benutzer aus einer AD-Gruppe zu entfernen, besteht darin, eine CSV-Datei mit der Liste der Benutzernamen zu erstellen und dann diese Benutzer mit diesem Skript aus dem Gruppenobjekt zu entfernen:
Import-CSV C:scriptsusers.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity "Quality" -members $_.users}
Einen Benutzer aus allen Gruppen entfernen
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, dass der Benutzer alle Gruppenmitgliedschaften außer „Domain Users“ verlieren wird, die bei Bedarf manuell entfernt werden können.
Berichterstattung über Active Directory-Gruppen
Jetzt, da wir wissen, wie man viele gängige Active Directory-Verwaltungsaufgaben in Bezug auf Gruppen mit PowerShell durchführt, sehen wir uns an, wie man Berichte über die in AD vorhandenen Gruppen erstellt:
Um alle Gruppen in AD aufzulisten, verwenden Sie das folgende Skript:
Get-ADGroup -filter * -properties GroupCategory | ft name,groupcategory
Natürlich möchten Sie auch die Mitglieder von AD-Gruppen und Änderungen an der AD-Gruppenmitgliedschaft überprüfen. Hier finden Sie Links zu Anleitungen für diese komplexeren Aufgaben:
- Wie man Änderungen an der Mitgliedschaft von Active Directory-Gruppen überwacht
- So erhalten Sie AD-Benutzergruppenmitgliedschaftsberichte
- So exportieren Sie Mitglieder einer bestimmten AD-Gruppe
- Verwalten von OUs und Verschieben ihrer Objekte mit PowerShell
Fazit
Jetzt, da Sie gelernt haben, wie man Gruppen und Gruppenmitgliedschaften im Active Directory mit PowerShell-Skripten verwaltet, versuchen Sie einige der Gruppenverwaltungsaufgaben selbst durchzuführen. Seien Sie jedoch vorsichtig und vergessen Sie nicht, das Feature Active Directory Recycle Bin zu aktivieren, damit Sie Ihre Änderungen problemlos zurücksetzen können, falls etwas schief geht. Denken Sie daran, das ADUC MMC-Snap-In ist großartig für die Verwaltung von Gruppen und Gruppenmitgliedschaften, aber PowerShell ist viel besser für die Verwaltung von Gruppen in großen Mengen.
Teilen auf
Erfahren Sie mehr
Über den Autor
Jeff Melnick
Direktor für Systemtechnik
Jeff ist ehemaliger Director of Global Solutions Engineering bei Netwrix. Er ist ein langjähriger Netwrix-Blogger, Redner und Präsentator. Im Netwrix-Blog teilt Jeff Lifehacks, Tipps und Tricks, die Ihre Systemadministrationserfahrung erheblich verbessern können.
Erfahren Sie mehr zu diesem Thema
Datenschutzgesetze der Bundesstaaten: Unterschiedliche Ansätze zum Datenschutz
Beispiel für Risikoanalyse: Wie man Risiken bewertet
Das CIA-Dreieck und seine Anwendung in der realen Welt
Was ist elektronisches Records Management?
Quantitative Risikoanalyse: Jährliche Verlust Erwartung