我已經編寫powershell腳本將一個文件(包含主機名)分成10個文件,對每個文件中的主機名執行ping(即powershell test-connection命令)。爲了加速這個過程,我使用了start-job命令來處理每個文件的主機名。如果我刪除了開始作業命令,那麼腳本可以根據需要正常工作。但是,當我使用start-job命令時,在「scriptblock」內使用的數組不會返回所需的輸出。相反,它仍然是空的。以下是部分腳本(僅適用於一個文件處理)。請指導,我在這裏錯過了什麼?Powershell,啓動作業不工作。沒有啓動腳本是好的
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
}
}
}
'Create-New-Object'?沒有這樣的東西 – 4c74356b41
'Start-Job'通過創建帶有單獨變量的獨立'Runspace'的新進程(特別是'$ resultsarray_file1')。 – PetSerAl
這是一個自定義編寫的函數 –