Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Okay I searched though a lot of PowerShell Blogs for the answer to this but couldn't find a solution that really worked. I finally just took the C# solution from a MSDN article (https://msdn.microsoft.com/en-us/library/ms180907(VS.85).aspx) and converted it to PowerShell. Hopefully this is helpful to someone!
# $LDAPGroup is in the format cn=TestGroup,dc=contoso,dc=com 
$container = 'LDAP://' + $LDAPGroup
$member = 'member'
$counter=0
$GroupEntry = New-Object DirectoryServices.DirectoryEntry($container)
$GroupSearcher = New-Object DirectoryServices.DirectorySearcher($GroupEntry)
$GroupSearcher.Filter="(objectClass=*)"
$rangeStep = 1000
$rangeLow = 0
$rangeHigh = $rangeLow + ($rangeStep - 1)
$lastQuery = $FALSE
$quitLoop = $FALSE
do
{
 if(!$lastQuery)
 {
  $attribRange = 'member;range=' + $rangeLow + '-' + $rangeHigh
 }
 else
 {
  $attribRange = 'member;range=' + $rangeLow + '-*'
 }
 # clear searcher properties and add new range
 # cast to [void] so result won't display
 [void]$GroupSearcher.PropertiesToLoad.Clear()
 [void]$GroupSearcher.PropertiesToLoad.Add($attribRange)
$Results = $GroupSearcher.FindOne()
 If ($Results -eq $Null)
 {
  write-host " "
  write-host "Error: Unable to find specified LDAP Group" -ForeGroundColor Red;
  write-host " "
  break
 }
 
 foreach($Res in $Results.Properties.PropertyNames)
 {
  # for debugging range
  #write-host "member range: " $Res
 }
 if($Results.Properties.Contains($attribRange))
 {  
  foreach($Res2 in $Results.Properties[$attribRange])
  {
   # cast each member as an ADSI object
   $adsPath = 'LDAP://' + $Res2
   $account=[ADSI]$adspath
   $account.setinfo()
 
   # use PSObject to display the properties of the object
   $obj = New-Object PSObject
 
   $obj | Add-Member -MemberType NoteProperty -Name sAMAccountname -Value $account.properties.samaccountname[0]
   $obj | Add-Member -MemberType NoteProperty -Name DN -Value $account.path
   write $obj
   $counter = $counter + 1
  }
  if($lastQuery)
  {
   $quitLoop = $TRUE
  }
 
 }
 else
 {
  $lastQuery = $TRUE
 }
 if(!$lastQuery)
 {
  $rangeLow = $rangeHigh + 1
  $rangeHigh = $rangeLow + ($rangeStep - 1)
 }
}
until($quitLoop)
write-host " "
write-host "Total users:" $counter
Comments
- Anonymous
June 09, 2015
The comment has been removed