# import AD Module Import-Module activedirectory #Set-ExecutionPolicy unrestricted #--------------------------- #-------- Variable --------- #--------------------------- $ADUserMembers=""; $ADUser="" $ADGroupName=""; $ADGroupCategory=""; $ADGroupScope="" $i=0 #--------------------------- #------- Functions --------- #--------------------------- function Get-ADGroupName ($DN) { $ADGrpName= (Get-ADGroup -Filter {DistinguishedName -eq $DN}).SamAccountName return $ADGrpName } function Get-GroupMemberOf ($ADGroupName) { if ($ADGroupName -eq "# Developer") { break } $ii++; $a=0 $Message=""; $Prefix="" $GroupCategory=""; $GroupScope=""; $GroupName="" For ($a=0; $a -lt $ii; $a++) {$Prefix = $Prefix + " "} $DNs=(Get-ADGroup $ADGroupName -Properties *).MemberOf if ($DNs.count -ne 0) { foreach ($DN in $DNs) { # $Prefix =" $ADGroupName => " $GroupName = (Get-ADGroupName $DN) $GroupCategory = (Get-ADGroup $GroupName -Properties *).GroupCategory $GroupScope = (Get-ADGroup $GroupName -Properties *).GroupScope $Message="$Prefix $ADGroupName => $GroupName [$GroupCategory - $GroupScope]" Write-Host $Message Get-GroupMemberOf $GroupName ' ' }# End ForEach }# End IF }#End Function function Get-UserMemberships ($ADUser) { $ADUserMembers=(Get-ADUser $ADUser -Properties *).MemberOf Write-Host "AD-User: $ADUser" -ForegroundColor blue #PrimaryGroup $ADPrimaryGroupDN = (Get-ADUser -Properties * -Filter {SamAccountName -eq $ADUser}).PrimaryGroup $ADPrimaryGroupName=(Get-ADGroupName $ADPrimaryGroupDN) $ADGroupCategory=(Get-ADGroup $ADPrimaryGroupName).GroupCategory $ADGroupScope=(Get-ADGroup $ADPrimaryGroupName).GroupScope $Message = "Primary Group: $ADPrimaryGroupName [$ADGroupCategory, $ADGroupScope]" Write-Host $Message -BackgroundColor yellow #Other groups foreach ($ADUserMember in $ADUserMembers) {$i++ $ADGroupName = (Get-ADGroupName $ADUserMember) $ADGroupCategory=(Get-ADGroup $ADGroupName).GroupCategory $ADGroupScope=(Get-ADGroup $ADGroupName).GroupScope $Message = "($i) $ADGroupName [$ADGroupCategory, $ADGroupScope]" Write-Host $Message -ForegroundColor black Get-GroupMemberOf $ADGroupName ' ' Write-Host " " } } function Get-AllMembershipsOfUsers($ADGroupName) { $devadmaccounts = get-adgroupmember -Identity $ADGroupName -Recursive foreach ($devADM in $devadmaccounts) { Get-UserMemberships $devADM.name Write-Host "======================================================================================================" } } #----------------------------------------------------------------- Clear-Host $ADUser= "DannyADM" Get-UserMemberships $ADUser #$ADGroupName = "# Developer ADM" #Get-AllMembershipsOfUsers $ADGroupName