我试图将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) }
我的问题是,$用户似乎缺乏我尝试调用的CopyTo方法。 据我了解的PowerShell,$ user是typesSystem.DirectoryServices.DirectoryEntrytypes的.NET对象…在Visual Studio中我find方法CopyTo …在PowerShell中找不到它的任何方法,只是属性。
我刚刚开始使用PowerShell,所以请帮助!
根据这个StackOverflow的问题 ,你应该使用一个DirectoryEntry对象的PSBase成员来访问它的所有方法。 尝试这个:
foreach($result in $results) { $user = $result.GetDirectoryEntry() $user.PSBase.MoveTo($targetEntry) }
您不能复制AD用户。
您可以将它们从一个地方移到另一个地方,也可以根据现有的用户创build新的用户…但在后一种情况下,您必须提供新的用户名,密码和其他一些东西; 这不像“复制和粘贴”操作那么简单。
用户是安全主体,在给定的域中必须是唯一的; 在不同的OU中不能有两个“相同的”用户对象。