You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求大小超限,如何获取AD组所有用户?

解决AD组成员获取时的大小限制问题

你遇到的The size limit for this request was exceeded报错,是因为Get-ADGroupMember默认有5000条的结果集大小限制,当目标AD组的成员数量超过这个阈值时就会触发该提示。以下是几种可行的解决方法:

方法1:通过组的member属性批量获取(推荐)

这种方式绕过Get-ADGroupMember的限制,直接读取组的member属性获取所有成员的DN,再批量查询对象信息:

$Group1 = Read-Host "Enter the First AD Group"
# 获取目标组的所有成员DN列表
$allMemberDNs = (Get-ADGroup -Identity $Group1 -Properties member).member
# 遍历DN获取对应AD对象的属性并导出CSV
$allMemberDNs | Get-ADObject -Properties SamAccountName, DisplayName, EmployeeID | 
    Select-Object Name, DisplayName, EmployeeID |
    Export-Csv -Path C:\Users\user1\Desktop\ADGroupAudit\adgroup.csv -NoTypeInformation

如果需要递归获取嵌套组里的成员,需要额外添加递归逻辑处理嵌套的组对象。

方法2:取消Get-ADGroupMember的结果集限制

通过-ResultSetSize参数设置为$null来取消默认的5000条限制,不过部分域环境可能会因为管理员设置的全局限制而无法生效:

$Group1 = Read-Host "Enter the First AD Group"
Get-ADGroupMember -Identity $Group1 -ResultSetSize $null | 
    Get-ADObject -Properties SamAccountName, DisplayName, EmployeeID |
    Select-Object Name, DisplayName, EmployeeID |
    Export-Csv -Path C:\Users\user1\Desktop\ADGroupAudit\adgroup.csv -NoTypeInformation

方法3:用LDAP递归查询所有嵌套成员

如果需要一次性获取包括嵌套组在内的所有成员(仅用户对象),可以使用LDAP的递归过滤规则:

$Group1 = Read-Host "Enter the First AD Group"
$groupDN = (Get-ADGroup -Identity $Group1).DistinguishedName
# LDAP过滤条件实现递归查询所有成员
Get-ADUser -LDAPFilter "(memberOf:1.2.840.113556.1.4.1941:=$groupDN)" -Properties DisplayName, EmployeeID |
    Select-Object Name, DisplayName, EmployeeID |
    Export-Csv -Path C:\Users\user1\Desktop\ADGroupAudit\adgroup.csv -NoTypeInformation

若要包含组、计算机等其他AD对象,只需将Get-ADUser替换为Get-ADObject即可。

内容的提问来源于stack exchange,提问作者On3N3xus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 07:25:32