Get-ADGroupMember:超出了此请求的大小限制

2024-04-12

我正在尝试从文本文件中提取群组,但我的一个群组太大了,有 80,000 人。

我如何让它发挥作用,它会按照我想要的方式输出。

$groups = Get-Content c:\temp\ADGroups.txt

foreach($group in $groups) {
    @(Get-ADGroup $group -Properties Member| Select-Object -ExpandProperty Member).Count
    Get-ADGroupMember -Identity $group |
        Get-ADObject -Properties Name, DisplayName |
        Select-Object -Property @{n="Username";e={$_.Name}}, DisplayName,
            @{n="AD Group";e={$group}} |
        Export-Csv C:\Users\Desktop\GroupsInfo.CSV -NoTypeInformation -Append
}

对象的数量Get-ADGroupMember可以返回受到限制ADWS https://technet.microsoft.com/en-us/library/dd391908.aspx(活动目录网络服务):

MaxGroupOrMemberEntries

5000

指定 Active Directory 模块可以检索的组成员(递归或非递归)、组成员身份和授权组的最大数量Get-ADGroupMember, Get-ADPrincipalGroupMembership, and Get-ADAccountAuthorizationGroupcmdlet。如果您预计这些 cmdlet 在您的环境中返回超过 5000 个结果,请将此参数设置为更高的值。

根据这个线程 https://social.technet.microsoft.com/Forums/ie/en-US/dbb3777c-dd14-4e3a-8690-103d991e2b85/how-do-i-resolve-the-size-limit-exceeded-for-getadgroupmember-error-when-listing-a-group-with?forum=winserverpowershell您应该能够通过查询组对象并扩展它们来解决它member属性(如果您无法增加服务限制):

Get-ADGroup $group -Properties Member |
    Select-Object -Expand Member |
    Get-ADUser -Property Name, DisplayName

但请注意,这可能会很慢,因为您将发送数千个请求。建立所有用户的哈希表可能会更好:

$users = @{}
Get-ADUser -Filter '*' -Property Name, DisplayName | ForEach-Object {
    $users[$_.DistinguishedName] = $_
}

这样您就可以通过它们的专有名称来查找它们:

Get-ADGroup $group -Properties Member |
    Select-Object -Expand Member |
    ForEach-Object { $users[$_] }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Get-ADGroupMember:超出了此请求的大小限制 的相关文章

随机推荐