通常使用Set-ADAccountPassword,您无法获得任何输出。 Set-ADAccountPassword的get-help表示有一个-PassThru参数来“返回新的或修改过的对象”但是我根本无法获得任何输出。
Set-ADAccountPassword -Identity <username> -Reset -NewPassword -PassThru (ConvertTo-SecureString -AsPlainText "TempP@$$W0rd" -Force)
该命令有效,但没有输出。我想首先让它单独工作,然后最终使用Get-ADUser将用户的OU管道传输到Set-ADAccountPassword并显示已修改的对象列表。我只是无法理解为什么-PassThru似乎什么都不做。
谢谢
答案 0 :(得分:0)
在命令末尾放置-passthru并注意TempP @ $$ W0rd周围的引号。双引号允许variable expansion in the string。 $$是automatic variable,表示收到的最后一行powershell中的最后一个标记。这可能会使您的密码与您认为的密码完全不同。
实施例
PS:>Get-ChildItem C:\
PS:>"TempP@$$W0rd"
TempP@C:\W0rd
单引号代替。我不在装有AD模块的计算机上,但这应该可行。
Set-ADAccountPassword -Identity <username> -Reset -NewPassword (ConvertTo-SecureString -AsPlainText 'TempP@$$W0rd' -Force) -PassThru
这是一个解释-PassThru
的good article答案 1 :(得分:0)
我整个上午一直在争夺这个,似乎也无法从-PassThru获得任何输出。我有兴趣看看它的作用与它之间的区别。我在Windows Server 2008 R2域上运行PS4.0。
Set-ADAccountPassword -Identity $UserDN -Credential $AdminCred -Reset -NewPassword (ConvertTo-SecureString -AsPlainText $Pass -Force) -PassThru
答案 2 :(得分:0)
我最终从Win7重新映像我的机器,然后安装了ps v3和更高版本的v4到Win8,显然它带有ps v4。运行相同的脚本并且有效。
也许在升级路径的某个地方出现了问题。