簡體   English   中英

如何通過 Powershell 從禁用的 Active Directory 用戶中刪除所有組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM