使用 powershell 删除 AD 用户帐户失败

使用 powershell 删除 AD 用户帐户失败

我正在尝试删除不再需要或已离职人员的帐户列表。我认为 powershell 是最简单的方法,到目前为止,有以下脚本可以删除所有组成员身份,然后删除他们的帐户。

$users = Get-Content U:\UsersToDelete.txt

foreach ($user in $users){
    $groups = Get-ADPrincipalGroupMembership $user | Select-Object -Expand Name
        foreach ($group in $groups){
            Remove-AdGroupMember -Identity $group -Member $user -Confirm:$false
            }
    Remove-ADUser -Identity $user -confirm:$false
    }

删除群组成员身份工作正常,部分帐户被删除,但不是全部。我收到的错误是:

Remove-ADUser : The directory service can perform the requested operation only on a leaf object

我猜这可能与他们在 Exchange 中有一个邮箱有关,但除此之外我一无所知。有没有办法强制从 powershell 中删除帐户,或者我可以使用该命令的变体?

答案1

您在邮箱方面的做法是正确的。有些用户可能还有其他对象,因此您无法删除这些用户,除非您删除这些对象。此链接有一个有用的代码片段,您可以根据自己的使用情况进行调整:

http://andrewbeaton.net/faq/2012/07/04/cannot-remove-ad-user-with-nested-leaf-objects/

答案2

Remove-ADObject处理包含其他对象的 Active Directory 对象时可以使用。添加-Recursive参数允许删除嵌套对象。这适用于 Active Directory 用户对象以及其他对象。

参考:

相关内容