1. ホーム
  2. powershell

[解決済み] パスワードの入力を要求されずにPowerShellの認証情報を使用する

2022-04-27 10:15:51

質問

ドメインに属しているリモートコンピュータを再起動したい。管理者アカウントは持っていますが、powershellからどのように使用すればよいかわかりません。

があることは知っています。 Restart-Computer コマンドレットがあり、クレデンシャルを渡すことができますが、例えばドメインが mydomain で、ユーザー名は myuser で、パスワードは mypassword はどのような構文で使用するのが正しいのでしょうか?

パスワードを入力しなくてもいいように、再起動をスケジュールしたいのですが。

解決方法は?

の問題は Get-Credential は、常にパスワードを要求されることです。しかし、これを回避する方法があります。それは、パスワードをファイルシステム上に安全な文字列として保存することです。

この仕組みについては、以下の記事で解説しています。

<ブロッククオート

プロンプトを表示しないPSCredentialsの使用

要約すると、パスワードを(暗号化された文字列として)保存するためのファイルを作成します。次の行は、パスワードの入力を促し、それを c:\mysecurestring.txt を暗号化文字列として使用します。この作業は一度だけ行えばよい。

read-host -assecurestring | convertfrom-securestring | out-file C:\mysecurestring.txt

が表示されているところでは -Credential を渡すことができることを意味します。 PSCredential . つまり、あなたの場合

$username = "domain01\admin01"
$password = Get-Content 'C:\mysecurestring.txt' | ConvertTo-SecureString
$cred = new-object -typename System.Management.Automation.PSCredential `
         -argumentlist $username, $password

$serverNameOrIp = "192.168.1.1"
Restart-Computer -ComputerName $serverNameOrIp `
                 -Authentication default `
                 -Credential $cred
                 <any other parameters relevant to you>

が必要な場合があります。 -Authentication あなたの環境がわからないので、スイッチの値を教えてください。