2016-09-28 102 views
2

我有以下查詢PowerShell的 - 獲取 - AdGroupMember超限

$Groups = (Get-AdGroup -filter * | Where  { 
      ($_.name -like "*") 

} | select ObjectGUID -expandproperty ObjectGUID) 


$Table = @() 

$Record = [ordered]@{ 
    "Group _ObjectGUID" = "" 
    "Name" = "" 
    "SamAccountName" = "" 
    "Member_ObjectGUID" = "" 
} 


Foreach ($Group in $Groups) 
{ 
    $Arrayofmembers = Get-ADGroupMember -Recursive -identity $Group | select name,samaccountname,ObjectGUID 

    foreach ($Member in $Arrayofmembers) 
    { 
     $Record."Group _ObjectGUID" = $Group 
     $Record."Name" = $Member.name 
     $Record."SamAccountName" = $Member.SamAccountName 
     $Record."Member_ObjectGUID" = $Member.ObjectGUID 
     $objRecord = New-Object PSObject -property $Record 
     $Table += $objrecord 
    } 

} 

$Table | export-csv "C:\temp\AD_group_members.txt" -NoTypeInformation 

但是我不能,因爲它超過了5000最大的廣告回報它專門返回以下錯誤消息

執行查詢

Get-ADGroupMember:超出此請求的大小限制在 行:22 char:20 + $ Arrayofmembers = Get-ADGroupMember -Recursive -identity $ Group |選擇姓名,... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ + CategoryInfo:NotSpecified:(70206804-1c23-4e47-8e9e-e8fb7c688826:ADGroup)[Get-ADGroupMember], ADException + FullyQualifiedErrorId:該請求的大小限制已超出,Microsoft.ActiveDirectory.Management.Commands .GetADGroupMember

我不能想辦法把修剪下來來解決這個問題,因爲改變在所有域控制器(300ish)的配置的解決方案不是一個選項。

任何人有任何建議嗎?

回答

4

我今天也遇到了這個問題。你所要做的是成員的屬性拿到小組第一:

$ADInfo = Get-ADGroup -Identity $Group -Properties Members 

現在,$ ADInfo保存組和它的成員。爲了讓成員名單:

$ADInfo.Members 

如果你想成員AD記錄,請執行下列操作:

$ADInfo.Members | Get-ADComputer 

或者你可以把它放在一起:

(Get-ADGroup -Identity $Group -Properties Members).Members | Get-ADComputer 

我使用Get-ADComputer,但Get-ADUser的作用相同。

+0

如果一個組中有子組,get-adgroupmember會處理使用-recursive,但是get-adgroup或get-aduser和get-adcomputer將拋出一個帶有-recursive的錯誤。想過? –

相關問題