2014-11-01 45 views
-1

我试图复制现有的用户,用新的名称等,一个新的用户复制的广告用户..我如何通过PowerShell的

$root = New-Object System.DirectoryServices.DirectorySearcher 
$root.SearchRoot = "LDAP://dc=organization,dc=net" 
$root.Filter = "(&(objectClass=user)(samaccountname=TestUser1))" 
$result = $root.FindOne() 

$test = $result.GetDirectoryEntry() 
$newparent = New-Object System.DirectoryServices.DirectoryEntry($test.Parent) 
$test.CopyTo($newparent,"TestUser2") 

每当我运行上面的代码,我不断收到:

ERROR: Exception calling "CopyTo" with "2" argument(s): "Not implemented 
ERROR: " 
TestDir.ps1 (22): ERROR: At Line: 22 char: 13 
ERROR: + $test.CopyTo <<<< ($newparent,"TestUser2") 
ERROR:  + CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
ERROR:  + FullyQualifiedErrorId : DotNetMethodException 
ERROR: 

有谁知道这个问题可能是什么?我知道我想要达到的ActiveDirectory模块和任务存在..但我没有访问这些等于是我从头开始编写这个..

感谢

回答

0

您应该使用在实例属性与New-AdUser方法:

New-AdUser

使用模板来创建新的对象。为此,请创建一个新的用户对象或检索现有用户对象的副本,并将Instance参数设置为此对象。提供给Instance参数的对象用作新对象的模板。您可以通过设置cmdlet参数来覆盖模板的属性值。有关示例和更多信息,请参阅此cmdlet的实例参数描述。

-Instance<ADUser>

指定用户对象的实例作为一个新的用户对象要使用的模板。 您可以使用现有用户对象的实例作为模板,也可以构造用于模板使用的新用户对象。您可以使用Windows PowerShell命令行或使用脚本构建新的用户对象。

  • 方法1:使用现有的用户对象作为新对象的模板。要检索现有用户对象的实例,请使用诸如Get-ADUser之类的cmdlet。然后将此对象提供给New-ADUser cmdlet的Instance参数以创建新的用户对象。您可以通过设置适当的参数来覆盖新对象的属性值。

  • 方法2:创建一个新的ADUser对象并使用Windows PowerShell命令行界面设置属性值。然后将此对象传递给New-ADUser cmdlet的Instance参数以创建新的Active Directory用户对象。

一个实例可以在一个support post on Technet,在其中作者可以成功地创建用户可以看出,但具有新的用户对象的位置的困难。我认为你应该阅读这篇文章,以更好地了解新AdUser的方法和用法。

New-ADUser -SamAccountName "garyoj" -name "garyoj" -Instance $userinstance -PasswordNotRequire

+0

正如我在原来的帖子中写道,我没有访问ActiveDirectory的模块,所以我在寻找如何使用的DirectoryServices做到这一点。 thx – halv 2014-11-01 13:37:57

+0

对不起。我会研究它 – 2014-11-01 15:10:04