2 Pluspunkte 0 Minuspunkte
Wie kann ich eine Liste an Gruppen generieren in denen ein AD User Mitglied ist wenn die Gruppen auch wieder Mitglieder anderer Gruppen sein können?
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Hier ist ein Powershell-Script, dass dir ale Mitgliedschaften eines Benutzer inklusive der verschachtelten Mitgliedschaften anzeigt.

$global:i = 1

function GetNestedADGroupMembership {

    Param(
        [parameter(Mandatory = $true)] 
        [string]$user,

        [parameter(Mandatory = $false)] 
        [hashtable]$grouphash = @{},

        [parameter(Mandatory = $false)] 
        [string]$via = "direkte Mitgliedschaft"
    )

    $groups = @(Get-ADPrincipalGroupMembership -Identity $user | Select-Object -ExpandProperty DistinguishedName)

    foreach ($group in $groups) {

        if ($grouphash[$group] -eq $null) {

            $grouphash[$group] = $true
            $groupname = ($group -Split ',')[0] -Replace '^CN=', ''
            $grouptype = (Get-ADGroup -Filter * -Properties GroupCategory | Where-Object { $_.Name -eq ($groupname -Replace '\\', '') }).GroupCategory

            if($grouptype -eq "Security") { 

                $out = "$($global:i) : $groupname"

                if($via -ne "direkte Mitgliedschaft") {
                    $out += " <= $via"
                } 

                Write-Host $out

                $global:i++

            }

            if ((Get-ADObject -Identity $group).ObjectClass -eq "group") {
                GetNestedADGroupMembership -user $group -grouphash $grouphash -via $groupname
            }

        }

    }

}

GetNestedADGroupMembership "Testuser"
von (884 Punkte)  
Super, danke. Kann ich zusätzlich bei den nested Groups noch anzeigen durch welche Gruppe der Benutzer in einer verschachtelten Gruppe Mitglied ist? LG
Ich habe das Script angepasst.