我已经拼凑了下面的 powershell 脚本,但是当我在我的 DC 上运行它时,我收到以下错误消息。
我的总体目标是让脚本拾取计算机 OU 内的任何工作站并将它们移动到工作站 OU,即伦敦 OU 父级内的子 OU。
任何帮助,将不胜感激。
Powershell 脚本
$computerstomove = Get-ADComputer -LDAPFilter "(name=TCWSTEST)" -SearchBase "CN=computers,DC=temporis,DC=corp"
foreach ($computertomove in $computerstomove) {
Move-ADObject $computertomove -TargetPath "OU=London,OU=Workstations,DC=temporis,DC=corp"
}
错误消息:
Move-ADObject : The operation could not be performed because the object's parent is either uninstantiated or deleted
At \\tcws40\c$\Scripts\Workstation move.ps1:4 char:2
+ Move-ADObject $computertomove -TargetPath "OU=London,OU=Workstations,DC=tempori ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (CN=TCWSTEST,CN=...emporis,DC=corp:ADComputer) [Move-ADObject], ADException
+ FullyQualifiedErrorId : ActiveDirectoryServer:8329,Microsoft.ActiveDirectory.Management.Commands.MoveADObject
答案1
首先,不需要不必要的foreach
。这应该可以正常工作:
Get-ADComputer TCWSTEST | Move-ADObject -TargetPath "OU=London,OU=Workstations,DC=temporis,DC=corp"
其次,我在我的环境中测试了这两种方法(您的和我的),它们都没有错误。您是否确认“对象的父级未实例化或已删除”是真的?请仔细检查您的 DN,"OU=London,OU=Workstations,DC=temporis,DC=corp"
因为如果您的 DN 中有拼写错误,您将收到此错误消息。
答案2
为了使我的生活变得轻松很多,我最终改变了将 PC 添加到域时放置 PC 的默认文件夹。我在 Powershell 中对我的 DC 使用了 redircmp 命令,效果很好。
redircmp“OU=工作站,OU=伦敦,DC=temporis,DC=corp”