Invoke-Command
を送信するADSIコマンドを使用して、リモートPowerShellターゲットのパスワードを変更する作業を自動化しています。私は、リモートマシンにADSIコマンドを送信するには、次のPowerShellコマンドを使用しています:リモートPowerShellターゲットのADSIコマンド内の変数
Invoke-Command -ComputerName $computer -ScriptBlock {
(([ADSI]“WinNT://localhost/Administrator”).SetPassword($new_password)).SetInfo
} -Credential $mycred
すべてが$new_password
変数を除いて動作します。 ADSIコマンド(SetPassword()
メソッド内)で文字列を直接入力すると、パスワードはリモートクライアント上で正常に変更されます。しかし、代わりに$new_password
変数を使用すると、リモートクライアントの管理者パスワードが空白に設定されます。他のすべての変数、つまり$computer
と$mycred
は、Invoke-Command
コマンド全体で正しく動作するように見えますが、動作していないのは1つの$ new_passwordだけです。スクリプトブロックに
$new_password = "mypassword"
Invoke-Command -ComputerName $computer -ScriptBlock {
(([ADSI]“WinNT://localhost/Administrator”).SetPassword($new_password)).SetInfo
} -Credential $mycred