Powershell: uzyskaj dane wyjściowe z Receive-Job

Mam kolekcję prac, które są uruchomione. Po ich zakończeniu używam zadania odbioru i zapisuje dane wyjściowe na ekranie. Chciałbym wziąć ten wynik i zalogować go do pliku. Nie chcę generować danych wyjściowych, gdy zadania są uruchomione, ponieważ wiele zadań jest uruchomionych jednocześnie, a rejestrowanie zostanie przeplatane. Get-Job | Receive-Job drukuje dane wyjściowe w uporządkowany sposób.

Wypróbowałem wszystkie poniższe elementy i żadne dane nie są zapisywane w pliku lub przechowywane w zmiennej, po prostu trafiają na ekran:

#Wait for last job to complete
While (Get-Job -State "Running") {    
    Log "Running..." -v $info
    Start-Sleep 10        
}    
Log ("Jobs Completed. Output:") -v $info

# Getting the information back from the jobs
foreach($job in Get-Job){
    Receive-Job -Job $job | Out-File c:\Test.log -Append
    $output = Receive-Job -Job $job        
    Log ("OUTPUT: "+$output)
    Receive-Job -Job $job -OutVariable $foo
    Log ("FOO: "+$foo)
}

EDYCJA: Usunąłem dodatkowe wezwania do otrzymania pracy w foreach do następujących po obejrzeniu komentarza Keitha:

# Getting the information back from the jobs
foreach($job in Get-Job){
    Receive-Job -Job $job -OutVariable temp
    Write-Host ("Temp: "+$temp)
    $temp | Out-File -FilePath c:\Test.log -Append 
}

Sprawdziłem również, że nie używam Receive-Job nigdzie indziej w skrypcie. Zapisujący host $ temp i plik wyjściowy nadal nie generują żadnego wyjścia.

questionAnswers(6)

yourAnswerToTheQuestion