2017-05-26 11 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 

あなたはすべての値が含まれますInvoke-Command$returnValueWrite-Ouputを複数回使用する場合Write-Ouputを介して出力steramに書いたことに注意してください。

+0

私はそれを試みます。驚くほど速い応答をありがとう。 – CalvinK

関連する問題