我试图成功执行从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
}
我相信你必须给'add-adgroupmember'一个用户对象(不只是名字)。因此,当您执行'new-aduser'捕获该对象时: '$ userTwo = new-aduser ...' 然后在您的循环中将对象反馈给'add-adgroupmember': 'add-adgroupmember -identity $ group -member $ userTwo ....' – brendan62269
@ brendan62269从cmdlet上的帮助文档:[Members参数指定要添加到组中的新成员。您可以通过其专有名称(DN),GUID,安全标识符(SID)或SAM帐户名称来标识新成员。](https://technet.microsoft.com/zh-cn/library/ee617210.aspx) – BenH
Just尝试过,但不幸的是没有运气,它仍然没有执行foreach循环。 – philfasan