function Find-ADUsertInGroup { [CmdletBinding()] Param( [Parameter(Mandatory=$True)]$UsersDisplayName ) begin { $usrfltr="name -like `"*$UsersDisplayName*`"" $ADUsers=(Get-ADUser -Filter $usrfltr | select -ExpandProperty name | sort) Write-Host "Find next users: " ($ADUsers -join ', ') $ADGRPs=(Get-ADGroup -Filter 'name -like "*"' | select -ExpandProperty name | sort) } Process { foreach($user in $ADUsers) { [System.Collections.ArrayList]$GRPList=$ADGRPs foreach($grp in $ADGRPs) { $grpfltr="name -eq `"$grp`"" if(!($user -in (Get-ADGroup -Filter $grpfltr | Get-ADGroupMember -Recursive).name)) {$GRPList.remove("$grp")} } $properties=@{ "UserName"=$user; "UserGroups"=$GRPList -join ", "; } $obj=New-Object -TypeName psobject -Property $properties Write-Output $obj } } end {} }