2017-09-22 37 views
0

我试图成功执行从win8.1机器到2003域控制器有cmdlet的脚本。我在2003域控制器上设置了ADWS,现在可以在我的win8.1机器上远程使用cmdlet。Powershell创建新的用户副本组成员

我想要做的这个脚本是从一个预先存在的用户($ UserOne)获取组成员详细信息,创建一个新用户($ UserTwo),创建一个foreach循环来复制组成员资格从预先存在的($ UserOne)用户到已创建的新用户($ UserTwo)的详细信息。

目前这个脚本一直运行到创建新用户($ UserTwo)为止,然而之后的foreach循环似乎没有执行。

你们任何人都知道我的代码是什么问题吗?我怀疑这是我在创建用户后直接进入foreach循环的方式。我也尝试使用Invoke-Command在创建新用户之后创建一个新的会话,以便复制组成员资格,但是由于远程服务器是Windows 2003,所以我的cmdlet都不能在scriptblock中工作。

帮助会很大我很欣赏,我对Powershell还是很新的。我的代码如下:

$serv = "SERVERNAME" 

$cred = "admin\admin" 

$secureString = convertto-securestring "Password" -asplaintext -force 

$FirstUser = "NameOne" 

$SecondUser = "NameTwo" 

$UserOne = Get-ADUser -Identity $FirstUser -Properties memberOf -Server $serv 

New-ADUser -SAMAccountName $SecondUser -UserPrincipalName "[email protected]" -DisplayName $SecondUser -Enabled $true -AccountPassword $secureString -Credential $cred -Server $serv -PassThru 

$UserTwo = Get-ADUser -Identity $SecondUser -Properties memberOf -Server $serv 

foreach($group in $UserOne.memberof) 
{ 
Add-ADGroupMember -Identity $group -Member $SecondUser -Server $serv 
write-output $group 
} 
+0

我相信你必须给'add-adgroupmember'一个用户对象(不只是名字)。因此,当您执行'new-aduser'捕获该对象时: '$ userTwo = new-aduser ...' 然后在您的循环中将对象反馈给'add-adgroupmember': 'add-adgroupmember -identity $ group -member $ userTwo ....' – brendan62269

+0

@ brendan62269从cmdlet上的帮助文档:[Members参数指定要添加到组中的新成员。您可以通过其专有名称(DN),GUID,安全标识符(SID)或SAM帐户名称来标识新成员。](https://technet.microsoft.com/zh-cn/library/ee617210.aspx) – BenH

+0

Just尝试过,但不幸的是没有运气,它仍然没有执行foreach循环。 – philfasan

回答

1

原来这正好是一个权限问题,它只是我没有通过错误消息得到任何反馈!

感谢您的帖子,虽然家伙。