Hello there,
Does anyone know how can i get the equivalent to this
Get-ADGroupMember -identity “$group” -Recursive |Where-Object ObjectClass -EQ user| select SamAccountname -ExpandProperty SamAccountname
But using [adsisearcher] ?
Hello there,
Does anyone know how can i get the equivalent to this
Get-ADGroupMember -identity “$group” -Recursive |Where-Object ObjectClass -EQ user| select SamAccountname -ExpandProperty SamAccountname
But using [adsisearcher] ?
I don’t think you can do that directly. You’d have to get all of the top group members then write a recursive function to test if any of them are groups and get their members.
Its possible but messy
Is there a reason you can’t use Get-ADGroupMember
I covered this way back in PowerShell in Practice but the code looks something like this
## PowerShell in Practice ## by Richard Siddaway ################################## ## get group membership ################################## $group = [ADSI]"LDAP://cn=UKPMs,ou=All Groups,dc=manticore,dc=org" $group.member | Sort-Object ## Listing 5.25 ## Get nested group membership ################################# function resolve-group{ param ($group) foreach ($member in $group.member){ $obj = [ADSI]("LDAP://" + $member) $global:members += $obj.distinguishedname if ($obj.objectclass[1] -eq 'group'){resolve-group $obj} } } $global:members = @() $group = [ADSI]"LDAP://cn=International,ou=All Groups,dc=manticore,dc=org" resolve-group $group $global:members | Sort-Object -Unique
It’s possible
#Find all (include indirect) members of TestGroup1 $ds = New-Object System.DirectoryServices.DirectorySearcher $gdn='CN=TestGroup1,OU=TEST,OU=ROOTOU,DC=corp,DC=domain,DC=com' $ds.Filter = "(memberOf:1.2.840.113556.1.4.1941:=$gdn)" $ds.FindAll()