关于我的这篇文章清理 Active Directory 我试图运行命令
dsquery Computer -inactive 52 | DSMOVE -newparent OU=Test,OU=Devices,DC=domain,DC=com,DC=au
当我运行此命令时,我收到以下错误消息
dsmove 失败:'CN=Computer1,OU=Staff PCs,OU=Devices,DC=domain,DC=com,DC=au' 是一个未知参数。
你知道这是什么意思吗?当我从 AD 中删除有问题的设备时,它会以相同的方式在 computer2 上出错。我的语法错了吗?
答案1
我的管道 dsmove 命令可以工作(而您的和 Mary 的命令都不能),但有一个限制 - 我必须能够使用 dsquery 查看目标 OU。如果 dsquery 无法查看目标 OU,而我尝试将某些内容移入其中,则会收到此(向后?)错误:
dsmove failed:<object I am trying to move>:Directory object not found.
发出命令:
DSQuery.exe ou -name *test*
(或者您尝试移动到的任何 OU)。您是否获得了正确的 DN?或者没有返回数据?
重新发出 dsquery ou 命令并搜索另一个 OU。您能将对象移动到该 OU 吗?
对我来说,区别在于类类型 - OU=Computers(在 ADUC 中看起来几乎与任何其他 OU 一样)属于“容器”类,我的 dsmove 失败。我的 dsmove 成功到达的 OU 属于“组织单位”类。
如果我右键单击 OU 并从 ADUC 中选择对象选项卡,我可以看到它是容器或组织单位。
您觉得如何?您是否想迁移至类“容器”OU?
答案2
很有趣。我看到了同样的行为。直接将条目放入管道的右侧是可行的,但使用它来将命令串在一起则不行。您可以尝试使用 for 循环来解决这个问题;无论如何,这对我来说是可行的:
对于 ('dsquery computer -inactive %yourcount') 中的 /f %f,执行 dsmove %f -newparent %yourparent
-玛丽