Powershell-获取超出限制的AdGroupMember

Powershell-获取超出限制的AdGroupMember,powershell,active-directory,Powershell,Active Directory,我有以下疑问 $Groups = (Get-AdGroup -filter * | Where { ($_.name -like "*") } | select ObjectGUID -expandproperty ObjectGUID) $Table = @() $Record = [ordered]@{ "Group _ObjectGUID" = "" "Name" = "" "SamAccountName" = ""

我有以下疑问

$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的最大ad返回值。它具体返回以下错误消息

Get-ADGroupMember:在超过此请求的大小限制 行:22字符:20 +$Arrayofmembers=Get-ADGroupMember-Recursive-identity$Group |选择名称。。。 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +类别信息:未指定:(70206804-1c23-4e47-8e9e-e8fb7c688826:ADGroup)[获取ADGroupMember], 例外 +FullyQualifiedErrorId:已超出此请求的大小限制Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember

我想不出一个方法来减少这个问题,因为改变所有域控制器(300ish)的配置的解决方案不是一个选项


有人有什么建议吗?

我今天也遇到了这个问题。您需要做的是获取具有成员属性的组:

$ADInfo = Get-ADGroup -Identity $Group -Properties Members
现在,$ADInfo持有该组及其成员。要获取成员列表,请执行以下操作:

$ADInfo.Members
如果您想要会员广告记录,请执行以下操作:

$ADInfo.Members | Get-ADComputer
或者,您可以将其全部放在一起:

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

我使用的是Get-ADComputer,但Get-ADUser也适用。

如果一个组中有子组,Get-adgroupmember会使用-recursive处理该问题,但是Get-adgroup或Get-ADUser和Get-ADComputer会使用-recursive抛出一个错误。思想?