Mitgliedschaft eines Users in Active-Directory-Gruppen ausgeben


    Tags: , ,

    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

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Peter Monadjemi

    Peter Monadjemi lebt als freier IT-Journalist, Buchautor und Trainer mit Schwerpunkten PowerShell und .NET-Programmierung in Esslingen am Neckar.
     

    Verwandte Beiträge

    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