Tags: Active Directory, Identity-Management, PowerShell
Ein AD-User kann neben seiner primären Gruppe Mitglied in anderen Gruppen sein. Dafür gibt es im AD die Attribute PrimaryGroup und MemberOf, die per Get-AdUser gemeinsam abgefragt werden. Die Abfrage selber ist sehr einfach, die Schwierigkeit für alle, die bei der PowerShell erst am Anfang stehen besteht darin, die Namen zu einer einzigen Ausgabe zusammenzufassen.
Das Ziel soll es sein, dass aus der Abfrage ein Objekt entsteht, das über zwei Properties verfügt:
>Identity
>Gruppen (enthält die Namen der Gruppen als Array)
Im Folgenden wird eine kleine function vorgestellt, die die Namen aller Gruppen eines AD-Users ausgibt.
Wichtig: Das Skript setzt das ActiveDirectory-Modul voraus, das es nur unter Windows Server 2008 R2 und unter Windows 7 mit installierten Remote Server Administration Tools (RSAT) gibt. Ansonsten funktioniert es leider nicht.
<# .Synopsis Alle Gruppennamen in einer Ausgabe<#> Import-Module ActiveDirectory function Get-GroupNames{ param([String]$Identity) # Den Namen der Primärgruppe und der restlichen Gruppen gemeinsam holen Get-AdUser -Identity $Identity -Properties PrimaryGroup, MemberOf | Select-Object @{Name="Identity";Expression={$Identity}}, ` @{Name="Gruppen"; Expression={ @($_ | Select-Object -ExpandProperty PrimaryGroup;$_|Select-Object -ExpandProperty MemberOf)}}}
Aufgerufen wird die function wie folgt:
Get-GroupNames -Identity "CN=Pemo,CN=Users,DC=pmtrain,DC=local" | Select-Object -ExpandProperty Gruppen
Der Wert für den Identity-Parameter muss natürlich noch angepasst werden.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Konten im Active Directory entsperren oder aktivieren mit PowerShell
- Passwort-Einstellungen mit PowerShell: Kennwort läuft nie ab, Passwort nicht erforderlich
- Managed Service Accounts einrichten mit PowerShell
- Azure Active Directory heißt künftig Entra ID, zwei Entra-Produkte kommen hinzu
- Security- und Health-Checks für Active Directory mit PowerShell-Scripts
Weitere Links
1 Kommentar
Alternativ habe ich eben folgenden Befehl gefunden, bei dem mir die Ausgabe der Gruppen noch besser gefällt:
Get-ADPrincipalGroupMembership username | select name