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

PowerShell批量移除离职用户AD组成员时如何排除Domain Users组以避免报错

优化AD离职员工组移除流程,避免主组错误提示

嘿,我完全懂你现在的烦恼——每次批量处理离职员工的AD组成员身份移除时,都会因为脚本试图碰Domain Users这个主组而弹出那个烦人的错误提示。其实解决起来很简单,核心就是提前排除主组,不让脚本尝试去移除它,这里给你两种实用的方案:

方案一:直接排除Domain Users组(适用于默认环境)

这是最直接的方式,在获取用户的组列表时,直接过滤掉名称为"Domain Users"的组,这样脚本就不会去碰它了。修改后的代码如下:

$users = Import-Csv "c:\temp\leavers.csv"
foreach ($user in $users) {
    Get-ADPrincipalGroupMembership -Identity $user.username | 
        Where-Object { $_.Name -ne "Domain Users" } | 
        ForEach-Object { Remove-ADGroupMember $_ -Members $user.username -Confirm:$false }
}

这里通过Where-Object筛选器,把Domain Users组从待处理列表中剔除,自然就不会触发那个主组移除错误了。

方案二:通过主组SID精准排除(更通用)

如果你的AD环境中主组名称不是默认的Domain Users,或者想更严谨地处理,可以通过用户的PrimaryGroupID来匹配排除主组,代码如下:

$users = Import-Csv "c:\temp\leavers.csv"
foreach ($user in $users) {
    # 先获取用户对象及其主组ID属性
    $adUser = Get-ADUser -Identity $user.username -Properties PrimaryGroupID
    # 获取用户的所有组,排除主组
    Get-ADPrincipalGroupMembership -Identity $adUser | 
        Where-Object { $_.SID.Value -ne $adUser.PrimaryGroupID } | 
        ForEach-Object { Remove-ADGroupMember $_ -Members $adUser -Confirm:$false }
}

这个方法通过对比组的SID和用户的主组ID来精准排除主组,不管主组叫什么名字都能准确识别,适合非默认配置的AD环境。

两种方案都能完美解决你的错误提示问题,你可以根据自己的AD环境选择合适的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 18:47:39