1つのファイル (ホスト名を含む) を 10 個のファイルに分割し、各ファイルのホスト名に対して ping (つまり、powershell test-connection コマンド) を実行するpowershellスクリプトを作成しました。プロセスを高速化するために、start-job コマンドを使用して各ファイルのホスト名を処理しました。start-job コマンドを削除すると、スクリプトは必要に応じて正常に動作します。しかし、start-job コマンドを使用すると、「scriptblock」内で使用される配列が目的の出力を返しません。代わりに、空のままです。以下はスクリプトの一部です (1 つのファイルのみを処理する場合)。ガイドしてください、ここで何が欠けていますか?
Start-Job -Name "Ping-Part-1" -ScriptBlock {
foreach ($Comp1 in $file_part1_content) {
If (test-Connection -ComputerName $Comp1 -Count 1 -Quiet) {
$project1 = Create-New-Object
$project1.AliveStatus = "Alive"
$project1.Hostname = $Comp1
$resultsarray_file1 += $project1
}
Else {
$project1 = Create-New-Object
$project1.AliveStatus = "Not Alive"
$project1.Hostname = $Comp1
$resultsarray_file1 += $project1
}
}
}