将工作站从一个 OU 移动到另一个 OU

将工作站从一个 OU 移动到另一个 OU

我已经拼凑了下面的 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”

相关内容