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"