![将工作站从一个 OU 移动到另一个 OU](https://linux22.com/image/707948/%E5%B0%86%E5%B7%A5%E4%BD%9C%E7%AB%99%E4%BB%8E%E4%B8%80%E4%B8%AA%20OU%20%E7%A7%BB%E5%8A%A8%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%20OU.png)
我已经拼凑了下面的 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”