0

次のスクリプトを使用して、CSV に保存されているコンピューターのリストを ping しようとしています。望ましい結果は、タイムアウト条件を確認できることです。

$servers = ipcsv "\\testbox\c$\Tools\PAL Stuff\servers.csv"
$timeoutSeconds = 3
$code = {
  foreach($server in $servers) {
    $name = $server.name
    if($ping = Test-Connection -ComputerName $($args[0]) -BufferSize 16 -quiet -count 30) {
      write-host "This should be 30 pings."
    } else {
      write-host "This should display when the job times out"
    }
  }
} -ArgumentList $name
$j = Start-Job -ScriptBlock $code 
if (Wait-Job $j -Timeout $timeoutSeconds) { Receive-Job $j }
Remove-Job -force $j

このスクリプトはエラーになります:

「-」演算子の右側に値式を指定する必要があります。」

引数リストをここに移動すると:

$j = Start-Job -ScriptBlock $code -ScriptBlock $code

というエラーが表示されます

パラメータ 'ComputerName' の引数を検証できませんでした。引数が null または空です。

スクリプトブロックに変数を渡すことに関する記事や質問を見たことがありますが、それらは for でInvoke-Commandあり notStart-Jobであり、翻訳で機能させるにはまだ必要です。それが機能した場合、期待している出力が表示されないという印象を受けていWrite-Hostます。

4

0 に答える 0