前のメモで、PowershellからリモートPCの情報を取り出すために、-Credential オプションを使う事を書きました。
では、以下のように、10秒おきにリモートPCのCPU負荷を取ろうとすると、パスワード入力は1回だけで済むの?それとも、まさか毎回入力しなくちゃいけないって事は無いよね。
while(1){
Get-WmiObject -ComputerName win10_01 -Credential my_account Win32_PerfFormattedData_PerfOS_Processor | Select Name,PercentProcessorTime
sleep 10
}
試してみたところ、上記の書き方では、10秒おきに毎回パスワードを尋ねられます。
スクリプトとしてはこれでは駄目。
またまたWeb検索してみたところ、Get-Credential コマンドを使えば良いそうです。
$c = get-credential while(1){ Get-WmiObject -ComputerName win10_01 -Credential $c Win32_PerfFormattedData_PerfOS_Processor | Select Name,PercentProcessorTime sleep 10 }
対策は、get-credential を使えばいいってこと。
$c = get-credential で、グローバル変数 $c にアカウント情報が取り込まれます。
その後は、-Credential $c で、毎回アカウント情報が代入されるので、コマンド実行時に一度入力すれば、そのPowershell ウィンドウの中では、以後入力が不要になります。
コマンドの中にアカウント情報を丸々残しておくのは嫌なので、この記述方法ならスクリプトに使えますね。