我试图成功执行一个脚本,该脚本具有从win8.1计算机到2003域控制器的cmdlet。我在2003域控制器上设置了ADWS,现在可以从我的win8.1机器上远程使用cmdlet。
我尝试使用此脚本的目的是从预先存在的用户($ 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 "blah@blah.com" -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 :(得分:1)
原来这是一个权限问题,只是因为我没有通过错误消息获得任何反馈!
感谢你们的帖子。
答案 1 :(得分:0)
我在这里看到很多问题。
$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 "blah@blah.com"`
-DisplayName $SecondUser -Enabled $true -AccountPassword $secureString`
-Credential $cred -Server $serv -PassThru
尝试
$null = New-ADUser -SAMAccountName $SecondUser -UserPrincipalName "blah@blah.com" -DisplayName $SecondUser -Enabled $true -AccountPassword $secureString -Credential $cred -Server $serv
和
$UserTwo = Get-ADUser -Identity $SecondUser -Properties memberOf -Server $serv
您为什么要这样做?您已经知道,自从您刚刚创建帐户以来,该用户就不会成为任何组的成员(默认用户除外)。这样一来,您就永远不会在脚本中使用值$ usertwo。
write-host "Adding user $SecondUser to AD groups."
foreach($group in $UserOne.memberof)
{
Add-ADGroupMember -Identity $group -Member $SecondUser -Server $serv
write-output $group
}