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

使用PowerShell对比超5000用户的AD组并清理重复成员报错解决

解决AD大组成员对比与重复移除报错问题

当AD组成员数超过5000时,Get-ADGroupMember会因为默认分页限制无法完整获取所有成员,导致对比脚本报错。以下是可行的解决方案:

1. 完整获取大组成员

直接通过Get-ADGroup获取组的Members属性(该属性不受5000条限制),得到成员的DistinguishedName(DN)列表:

# 获取两个组的所有成员DN
$group1DNs = (Get-ADGroup "Imprivata1" -Properties Members).Members
$group2DNs = (Get-ADGroup "Imprivata2" -Properties Members).Members

2. 找出重复成员

通过DN对比(比Name更精准,避免同名用户误判)筛选出两个组的共同成员:

$duplicateDNs = $group1DNs | Where-Object { $group2DNs -contains $_ }

如果需要导出包含用户详细信息的CSV,可将DN转换为用户对象:

$duplicateUsers = $duplicateDNs | ForEach-Object { Get-ADUser $_ -Properties Name, SamAccountName }
$duplicateUsers | Select-Object Name, SamAccountName, DistinguishedName | Sort-Object Name | Export-Csv "C:\users\$env:username\Desktop\duplicate_ad_users.csv" -Encoding UTF8 -NoTypeInformation

3. 移除重复成员

以从Imprivata2组移除重复成员为例,执行批量移除(建议先去掉-Confirm:$false确认操作对象):

foreach ($dn in $duplicateDNs) {
    Remove-ADGroupMember "Imprivata2" -Members $dn -Confirm:$false
}

注意事项

  • 优先用DistinguishedName做对比,避免同名用户导致误操作
  • 执行移除前务必确认目标组和成员列表,建议先备份组信息
  • 确保运行脚本的账号拥有AD组的修改权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:46:17