Powershell: Get-Credential を使う

前のメモで、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 ウィンドウの中では、以後入力が不要になります。

コマンドの中にアカウント情報を丸々残しておくのは嫌なので、この記述方法ならスクリプトに使えますね。

コメントを残す