Windowsサーバー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 /管理者は、" リモートホストに属している、私の地元コンピュータ名とユーザー名は異なります。 私はここに何らかのエラーや適切な出力を得ていません。パスワードは変更されていません。どのホストでもこれらのコマンドを手動で実行しようとすると、動作します。
提案がありますか?たぶん、動作するソリューションですか?