![](/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.