Windows Server 2012 RC PowerShell错误:使用“0”参数调用“SetInfo”的异常:“指定的网络

时间:2012-06-20 03:06:00

标签: windows powershell

我正在尝试运行以下PowerShell脚本来创建本地用户。这适用于Windows Server 2008 R2,但我在Windows Server 2012 RC上收到以下错误。有关如何在Windows Server 2012中使其工作的任何想法?

$ComputerName = 'localhost' 
$computer = [ADSI]"WinNT://$ComputerName" 
$user = $computer.Create("User","Test") 
$user.setpassword("P2ssw0rd") 
$user.put("fullname","Test User") 
$user.SetInfo() 
$User.UserFlags[0] = $User.UserFlags[0] -bor 0x10000  #ADS_UF_DONT_EXPIRE_PASSWD flag is 0x10000 
$User.SetInfo() 

错误讯息: 调用带有“0”参数的“SetInfo”的异常:“指定的网络 密码不正确。

我还在Technet上找到了同样问题的人。那里没有答案。 http://social.technet.microsoft.com/Forums/en/ITCG/thread/16b0f6cc-1c85-4a6f-ba4f-1515f2991bec

谢谢, 麦克

2 个答案:

答案 0 :(得分:3)

感谢Technet论坛上有人,答案是不要将localhost用于计算机名称。这是更新的代码。

$ComputerName = $env:ComputerName 
$computer = [ADSI]"WinNT://$ComputerName"

希望它可以帮助他人。

谢谢, 麦克

答案 1 :(得分:1)

这更像是迈克答案的附录,我还没有代表发表评论。我只想添加,如果像我一样,你尝试使用[ADSI]“LDAP:// servername而不是[ADSI]”LDAP://127.0.0.1它仍然会抛出相同的错误。使用了当前的DC的名称,这就是诀窍。以防有人像我一样快捷方式迈克的答案,直接指定主机名,得到错误,并驳回这个解决方案。