在Powershell脚本中dsmod user pwd失败,参数不正确

时间:2013-12-12 19:02:01

标签: powershell-v2.0

有谁知道为什么PS脚本中的以下行会失败:

dsmod user $dn -pwd $password -mustchpwd no

我已经确认$ dn有效且$ password符合历史记录和复杂性要求。 $ password不包含任何未转义的非法字符。

这就是造成这种奇怪的原因:

  • 同样的命令(替换变量)起作用 互动PS终端
  • 在脚本中紧接着调用另一个dsmod来启用标识:例如dsmod user $dn -disabled no。这没有问题,所以我知道$ dn变量是有效的。
  • 与写入的完全相同的命令在另一个脚本中工作,其唯一目的是重置密码。
  • 这适用于我们的一些客户端系统,但不适用于所有客户端系统。

当在脚本中执行此操作时,PS返回: dsmod失败:参数不正确。

任何想法都将不胜感激。顺便提一下,如果这有帮助,脚本将通过与实际域控制器的无服务器绑定来执行。

此致

2 个答案:

答案 0 :(得分:1)

正如您使用powershell对此进行了标记,我有点疑惑为什么您没有使用Set-ADUserset-adaccountpassword cmdlet。

Set-ADAccountPassword –Identity $dn -Reset -NewPassword (ConvertTo-SecureString -AsPlainText $password –Force);
Set-ADUser -Identity $dn -ChangePasswordAtNextLogon;

答案 1 :(得分:0)

这是PowerShell脚本正在执行的上下文帐户没有足够的提升权限来执行操作的情况。将帐户提升为Administrators组可以消除此行为。