我是Powershell的新手,如果这很简单,我道歉。我尝试使用用户Nick的这个示例脚本,但遇到了一个错误,我认为AdObject应该绕过这个错误。我的脚本
Import-Module ActiveDirectory
$list = Import-CSV C:\scripts\deletebulkusers.csv
forEach ($item in $list) {
$samAccountName = $item.samAccountName
#Get DistinguishedName from SamAccountName
$DN = Get-ADuser -Identity $Samaccountname -Properties DistinguishedName |
Select-Object -ExpandProperty DistinguishedName
#Remove object using DN
Remove-ADObject -Identity $DN
}我已经在下面发布了我的错误:
Remove-ADObject : The directory service can perform the requested operation only on a leaf object
At line:13 char:5
+ Remove-ADObject -Identity $DN -confirm:$false
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (CN=<user>,DC=com:ADObject) [Remove-ADObject], ADException
+ FullyQualifiedErrorId : ActiveDirectoryServer:8213,Microsoft.ActiveDirectory.Management.Commands.RemoveADObject发布于 2017-06-28 23:26:25
很高兴我能帮上忙:)我以前也遇到过这种情况,特别是如果用户的手机上有Outlook,它就会把他们变成一个容器。如果您打开Active Directory用户和计算机,选择“查看”,并选中“查看用户、联系人、组和计算机作为容器”的选项,然后导航到该对象,您将看到该对象中有项目。
在Remove-ADObject中使用-recurse参数可以帮我解决这个问题。
发布于 2017-06-28 23:09:16
该错误表明您试图删除的对象是一个容器。我怀疑您可能正在证明cmdlet是您要删除的对象的容器,而不是对象本身。
我认为你可以通过使用管道来简化这种情况:
Get-ADuser -Identity $Samaccountname | Remove-ADObject -WhatIf如果-WhatIf参数看起来要执行您期望的操作,请删除该参数。
发布于 2017-06-28 23:41:27
下面是我的最终脚本。Nick和Mark Wragg的回答都解决了我的问题。谢谢大家!
Import-Module ActiveDirectory
$list = Import-CSV C:\scripts\deletebulkusers.csv
forEach ($item in $list) {
$samAccountName = $item.samAccountName
$DN = Get-ADuser -Identity $Samaccountname | Remove-ADObject -Recursive
}https://stackoverflow.com/questions/44805887
复制相似问题