2017-05-26 28 views
0

我想弄清楚我在這裏做錯了什麼。非常新的PowerShell,所以要溫柔...嘗試在遠程系統上運行PSSession(從系統列表中讀取)。然後嘗試將丟失補丁的值返回到本地系統,然後導出到CSV。我正在尋找一個號碼被退回。該值在Invoke命令中顯示在Powershell窗口中,但在腳本底部顯示任何內容。任何人都可以提供一些建議,我可以將這個價值回傳給我的系統,然後能夠導出到csv?任何建議將不勝感激。Powershell - 無法將遠程會話變量傳遞迴本地系統

$array1 = Get-Content "C:\Users\******\Desktop\Server_List.txt" 
$ReportResults = New-Object System.Collections.Generic.List[System.Object] 
$Searchresult = @() 


#parse thru each machine name in 
foreach ($MachineName in $array1) 
{    

Write-host $MachineName 
$session = New-PSSession -ComputerName $MachineName 

Invoke-Command -Session $session { 
Param($ReportResults) 


#Get All Assigned updates in $SearchResult 
$UpdateSession = New-Object -ComObject Microsoft.Update.Session 
$UpdateSearcher = $UpdateSession.CreateUpdateSearcher() 
$SearchResult = $UpdateSearcher.Search("IsAssigned=1 and IsHidden=0 and 
IsInstalled=0") 

Write-Host "total=$($SearchResult.updates.count)" 

$ReportResults.add($SearchResult) 

} -ArgumentList $ReportResults 

Remove-PSSession $session 


} 
$ReportResults # | export-csv C:\Users\******\Desktop\Compprogs\Test.csv - 
Notypeinformation 
+1

基本上問題是你什麼都沒有返回,所以沒有什麼可以返回的。你應該從會話中返回一些東西,而不是像你正在嘗試做的那樣將任何東西放入會話中 – 4c74356b41

回答

1

你必須「標記」參數爲ref。有關更多信息,請參閱此link

另外,您可以通過Write-Output返回您想要的值。例如:

$returnValue = Invoke-Command -ScriptBlock { 

    Write-Output "Hello World" 
} 

# $returnValue should include "Hello World" 
Write-Host $returnValue 

要知道,當你使用Write-Ouput多次在Invoke-Command$returnValue將包括所有值通過Write-Ouput寫信給輸出steram。

希望有幫助

+0

我會嘗試。感謝您的快速反應。 – CalvinK

相關問題