我試圖在運行Windows Server 2008/2012的超過1000臺主機上更改密碼。他們分配到不同的域,所以我通過他們的IP連接到他們,他們所有的PowerShell遠程打開。 卡住我的腳本實現。現在我只想連接到單個主機並更改用戶或管理員的密碼。正確執行遠程PS命令
這裏是我的代碼使用
$username = "UserWhose Password I want to change"
$password = ConvertTo-SecureString "users old password" -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $password
$serverNameOrIp = "host ip address here"
$s = New-PSSession -ComputerName $serverNameOrIp -Authentication default -Credential $cred
#invoke the scriptblock remotely
$sb = {
"[ADSI]`$Admin=`"WinNT://$env:COMPUTERNAME/$env:USERNAME`""
"`$Admin.SetPassword(`"Users new password`")"
}
Invoke-Command -Session $s -ScriptBlock $sb
Remove-PSSession $s
現在,控制檯輸出我得到:
PS C:\> ./script [ADSI]$Admin="WinNT://WIN-TA49U0TR9GT/Administrator" $Admin.SetPassword("Users new password") PS C:\>
「WINNT:// WIN-TA49U0TR9GT /管理員」 屬於遠程主機,我的地方計算機名和用戶名是不同的。 我沒有收到任何錯誤或正確的輸出。密碼不變。如果我嘗試在任何主機上手動運行這些命令 - 它的工作原理。
有什麼建議嗎?也許工作的解決方案?