Mitgliedschaft eines Users in Active-Directory-Gruppen ausgeben

    Kostenloser Ratgeber: Sicherheit für mobile Geräte im Unternehmen: Die 3 häufigsten Bedrohungen, Best Practices zum Schutz von Daten. Download »

    (Anzeige)

    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 -Property @{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.

    Keine Kommentare