我想知道我在这里做错了什么。对PowerShell来说很新,所以要温和......试着在远程系统上运行PSSession(从系统列表中读取)。然后尝试将缺失补丁的值返回到本地系统,然后导出为CSV。我只想找一个要退回的号码。当在Invoke-command内部时,该值显示在Powershell窗口中,但是在脚本底部没有显示任何内容。任何人都可以提供一些建议我如何将该值传递回我的系统然后能够导出到csv?任何建议将不胜感激。
$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
答案 0 :(得分: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的所有值。
希望有所帮助