PowerShell:将一个 OU 的所有 AD 用户复制到另一个 OU

Hin*_*nek 1 powershell active-directory .net

我正在尝试将 OU“A”的所有用户复制到 OU“B”。我的 PowerShell 拍摄是

$sourceEntry = [ADSI]"LDAP://OU=A,DC=demo,DC=com"
$targetEntry = [ADSI]"LDAP://OU=B,DC=demo,DC=com"

$searcher = New-Object DirectoryServices.DirectorySearcher($sourceEntry)
$searcher.Filter = "(objectClass=user)"
$results = $searcher.FindAll()

foreach($result in $results) {
    $user = $result.GetDirectoryEntry()
    $user.CopyTo($targetEntry)
}
Run Code Online (Sandbox Code Playgroud)

我的问题是, $user 似乎缺少我尝试调用的 CopyTo 方法。据我了解 PowerShell,$user 是 System.DirectoryServices.DirectoryEntry 类型的 .NET 对象……在 Visual Studio 中我找到了 CopyTo 方法……在 PowerShell 中我没有找到任何方法,只是属性。

我刚开始使用 PowerShell,所以请帮忙!

Mas*_*imo 6

您不能复制 AD 用户。

您可以将它们从一个地方移动到另一个地方,或者您可以根据现有用户创建新用户……但在后一种情况下,您必须提供新的用户名、密码和其他一些内容;它不像“复制和粘贴”操作那么简单。

用户是安全主体,他们在给定的域中必须是唯一的;在不同的 OU 中不能有两个“相同”的用户对象。