0
我有一個腳本可以連接到我們域中的所有服務器。然後,腳本遍歷每個服務器以獲取本地管理員和組的嵌套成員,並將它們放入PSObject中,以便稍後將PSObject導出爲CSV。使用powershell執行函數並在同一腳本中使用結果
現在我很困惑如何使用start-job傳遞一個參數來調用函數,並且能夠在我現有的腳本中利用該函數的輸出。
那麼假設我做到以下幾點:
function addnumbers{
param([int]$a, [int]$b)
[int]$c = $a + $b
$myobj = new-object PSObject
$myobj += $c
return $myobj
}
$exportdetail = @()
[int[]]$numbers = @(1,2,3,4)
foreach ($number in $numbers)
{
$newobj = new-object PSObject
$newobj = addnumbers $number
$exportdetail += $newobj
}
$exportdetail | export-csv -notype "c:\export.csv"
我們線程環路我會做到以下幾點:
function addnumbers{
param([int]$a, [int]$b)
[int]$c = $a + $b
$myobj = new-object PSObject
$myobj += $c
return $myobj
}
$exportdetail = @()
[int[]]$numbers = @(1,2,3,4)
foreach ($number in $numbers)
{
$ScriptBlock {
param($num)
$newobj = new-object PSObject
$newobj = addnumbers $num
}
start-job -ScriptBlock $ScriptBlock -ArgumentList $number
$exportdetail += $newobj
}
$exportdetail | export-csv -notype "c:\export.csv"
將這些對象被更新到exportdetail總體目標?
當我運行代碼時,各個線程啓動但他們不返回任何數據。