Powershell 2.0 dsmod用户pwd在Powershell脚本中失败,参数不正确

Powershell 2.0 dsmod用户pwd在Powershell脚本中失败,参数不正确,powershell-2.0,Powershell 2.0,有人知道PS脚本中的以下行失败的原因吗: dsmod user $dn -pwd $password -mustchpwd no 我已验证$dn有效,$password符合历史记录和复杂性要求$密码不包含任何未转义的非法字符 以下是让这一切变得奇怪的原因: 相同的确切命令(替换变量)在 交互式PS终端 接下来在脚本中立即调用另一个dsmod以启用标识:例如dsmod user$dn-disabled no。这是没有问题的,所以我知道$dn变量是有效的 正如所写的一样,相同的命令在另一个脚本中

有人知道PS脚本中的以下行失败的原因吗:

dsmod user $dn -pwd $password -mustchpwd no
我已验证$dn有效,$password符合历史记录和复杂性要求$密码不包含任何未转义的非法字符

以下是让这一切变得奇怪的原因:

  • 相同的确切命令(替换变量)在 交互式PS终端
  • 接下来在脚本中立即调用另一个dsmod以启用标识:例如
    dsmod user$dn-disabled no
    。这是没有问题的,所以我知道$dn变量是有效的
  • 正如所写的一样,相同的命令在另一个脚本中工作,该脚本的唯一目的是重置密码
  • 这适用于我们的一些客户机系统,但不适用于所有客户机系统
在脚本中执行此操作时,PS返回: dsmod失败:参数不正确

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


考虑到您已使用powershell对此进行了标记,我对您为什么不使用
Set-ADUser
Set-AdaAccountPassword
cmdlet感到有点困惑

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

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