2016-09-28 101 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的错误。想过? –

相关问题