# Get the direct group memberships
$UserGroups = Get-ADPrincipalGroupMembership $UserName |
Select distinguishedName, GroupCategory, GroupScope, name, objectClass, objectGUID, SamAccountName, SID,
@{l='Membership';e={'Direct'}}, @{l='Parent';e={$null}}
# Get the group membership 1 level down
foreach($group in $UserGroups){
$UserGroups += Get-ADPrincipalGroupMembership -Identity $group.distinguishedName |
Select distinguishedName, GroupCategory, GroupScope, name, objectClass, objectGUID, SamAccountName, SID,
@{l='Membership';e={'Inherit'}}, @{l='Parent';e={$group.distinguishedName}}
}
# Display results
$UserGroups | FT name, GroupCategory, GroupScope, Membership, Parent -AutoSize
Gets the Active Directory Groups a user is a member of and any other groups that they inherit from the direct membership, one level down.
PS C:\> $UserName = 'bgates'
>> $UserGroups = Get-ADPrincipalGroupMembership $UserName |
>> Select distinguishedName, GroupCategory, GroupScope, name, objectClass, objectGUID, SamAccountName, SID,
>> @{l='Membership';e={'Direct'}}, @{l='Parent';e={$null}}
>> foreach($group in $UserGroups){
>> $UserGroups += Get-ADPrincipalGroupMembership -Identity $group.distinguishedName |
>> Select distinguishedName, GroupCategory, GroupScope, name, objectClass, objectGUID, SamAccountName, SID,
>> @{l='Membership';e={'Inherit'}}, @{l='Parent';e={$group.distinguishedName}}
>> }
>> $UserGroups | FT name, GroupCategory, GroupScope, Membership, Parent -AutoSize
name GroupCategory GroupScope Membership Parent
---- ------------- ---------- ---------- ------
Domain Users Security Global Direct
Tier 1 Security Global Direct
Executives Security Global Direct
Users Security DomainLocal Inherit CN=Domain Users,CN=Users,DC=Contoso,DC=com
5-NotepadPP-App Security Global Inherit CN=Domain Users,CN=Users,DC=Contoso,DC=com