次のコマンドを呼び出すPowerShellスクリプトがあります。
plink -batch -ssh $defUser@$srv -pw $defPassword -m $executeCommandFile
$ defPasswordが常に同じ/正しいとは限らないという問題。 plinkからアクセス拒否エラーをキャッチするにはどうすればよいですか?
このようなもの:
if (plink -batch -ssh $defUser@$srv -pw $defPassword -ne "Access denied")
\\execute -m $executeCommandFile
else
\\use different $defPassword(for example $defPassword2) and then execute
Try\catchのようなものだと思いますが、plinkを使用したパスワード
"Access is denied"
メッセージがエラーストリームに表示されます。 Windows PowerShellリダイレクト演算子 を使用できます。例:次のようになります。
$aux = . plink -batch -ssh $defUser@$srv -pw $defPassword -m $executeCommandFile *>&1
if ( $aux -match '^Access.*denied' ) {
### the specified string found: use different $defPassword
} else {
### success
$aux ### show plink results
}
ご了承ください 2>&1
で十分かもしれません:
*>&1
送信すべての出力タイプ(*
)成功出力ストリームへ;2>&1
エラーを送信します(2
)および成功出力(1
)成功出力ストリームに。