如何使用PowerShell从AD组移除用户对象且保留联系人
从AD组移除用户但保留联系人的解决方案
我完全懂你的顾虑——你现在用的脚本会把目标AD组里的所有成员一股脑删掉,不管是用户还是联系人,确实容易误操作。咱们只需要给脚本加个简单的过滤条件,就能精准只移除用户对象,同时保留联系人。
修改后的脚本
Import-Module ActiveDirectory $group = "Group Name" # 仅筛选用户对象进行移除,自动排除联系人 Get-ADGroupMember "$group" | Where-Object { $_.objectClass -eq "user" } | ForEach-Object { Remove-ADGroupMember "$group" $_ -Confirm:$false }
关键说明
- 核心就是
Where-Object { $_.objectClass -eq "user" }这一行:它会检查每个组成员的对象类型,只保留user类型的条目,直接排除contact类型的联系人。 - 这样执行脚本时,只有用户会被从组中移除,所有联系人都会安全留在组里,彻底避免误删风险。
额外建议:先预览再执行
如果你担心还是会出错,可以先运行预览版本,列出所有即将被移除的用户,确认无误后再执行移除操作:
Import-Module ActiveDirectory $group = "Group Name" # 预览要移除的用户列表 Get-ADGroupMember "$group" | Where-Object { $_.objectClass -eq "user" } | ForEach-Object { Write-Output "即将移除的用户: $($_.Name) ($($_.SamAccountName))" }
内容的提问来源于stack exchange,提问作者Jaspreet Saini
相关产品推荐
相关产品推荐

