Response from Receive-Job contains some errors and I want to capture those in variable for some reason those are missing from variable but do output to screen when required. Example is below. I’d like $resp variable to contain error message as well, not only “Server1 processing finished”
PS C:\Users\admin>> $Sender | Receive-Job -Keep
The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
+ CategoryInfo : InvalidOperation: ( [Get-WmiObject], COMException
+ FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
+ PSComputerName : localhost
Server1 Processing finished
PS C:\Users\admin>> $resp = ($Sender | Receive-Job -Keep)
The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
+ CategoryInfo : InvalidOperation: ( [Get-WmiObject], COMException
+ FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
+ PSComputerName : localhost
use Get-Job to get the job object, and pipe it to Get-Member. You should see properties of the job object that provide access to the various pipelines.
Keep in mind that in PowerShell, error messages are never part of the “main” output - and Remoting only captures the “main” output. Errors, warnings, and so on have their own pipelines, or channels. They’re not always capturable with Remoting.
ErrorVariable and ErrorAction seem to work with Receive-Job just like any other cmdlet (though this test was running a local job, not remote. I don’t have another computer up on my home network at the moment for a full test.)