![](/img/trans.png)
[英]Powershell Script for adding Active Directory users to groups
[英]How do I remove all the groups from disabled Active Directory Users via Powershell?
我正在尝试在我们的 Active Directory 中收集所有禁用的用户,并尝试从他们的所有组中删除禁用的用户。 主要用于清理目的。 我有点卡在我的剧本上。 我不确定在Remove-ADPrincipalGroupMembership
之后放什么:
$disabled_users = Get-AdUser -SearchBase "Ou=Users, Ou=test, DC=testdomain, DC=io" -Filter
"enabled -eq 'false'"
foreach($person in $disabled_users) {
Get-ADPrincipalGroupMembership $person | Remove-ADPrincipalGroupMembership #stuckhere
}
Get-ADPrincipalGroupMembership
仅返回组,导致Remove-ADPrincipalGroupMembership
使用组名称自动填充-Identity
。 您必须在-Identity
中重新使用用户 object 。
由于第一个问题, Remove-ADPrincipalGroupMembership
不接受来自管道的多个组。 它应该正常,但Get-ADPrincipalGroupMembership
返回的[ADGroup]
对象似乎把它绊倒了。 要修复,请使用ForEach
循环,或使用两步过程:
# two steps:
$groups = Get-ADPrincipalGroupMembership $person
Remove-ADPrincipalGroupMembership -Identity $person -MemberOf $groups -WhatIf
# OR foreach loop:
Get-ADPrincipalGroupMembership $person |
Foreach {
Remove-ADPrincipalGroupMembership -Identity $person -MemberOf $_
}
请注意,您无法删除 AD 用户的主要组(通常是“域用户”),因此您可能需要添加过滤器:
$groups = Get-ADPrincipalGroupMembership $person |
Where Name -notlike 'Domain Users'
Remove-ADPrincipalGroupMembership -Identity $person -MemberOf $groups
改为使用Remove-ADGroupMember
添加另一个选项:
Get-ADPrincipalGroupMembership $person | Remove-ADGroupMember -Members $person
Remove-ADGroupMember
会将用户成员身份的distinguishedNames
名称作为管道值,因此您只需指定要删除的组的成员。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.