PowerShell: Führen Sie mehrere Jobs in parralel aus und zeigen Sie Streaming-Ergebnisse von Hintergrundjobs an

Überblick

Ich möchte ein Powershell-Skript aufrufen, das ein Argument aufnimmt, jeden Job im Hintergrund ausführt und mir die ausführliche Ausgabe zeigt.

Problem, auf das ich stoße

Das Skript scheint ausgeführt zu werden, aber ich möchte dies sicher überprüfen, indem ich die Ergebnisse der Hintergrundjobs streame, während sie ausgeführt werden.

Code

###StartServerUpdates.ps1 Script###

#get list of servers to update from text file and store in array
$servers=get-content c:\serverstoupdate.txt

#run all jobs, using multi-threading, in background
ForEach($server in $servers){
  Start-Job -FilePath c:\cefcu_it\psscripts\PSPatch.ps1 -ArgumentList $server
}

#Wait for all jobs
Get-Job | Wait-Job

#Get all job results
Get-Job | Receive-Job

Was ich gerade sehe:

Id              Name            State      HasMoreData     Location             Command                  
--              ----            -----      -----------     --------             -------                  
23              Job23           Running    True            localhost            #patch server ...        
25              Job25           Running    True            localhost            #patch server ...        

Was ich sehen möchte:

Searching for approved updates ...

Update Found:  Security Update for Windows Server 2003 (KB2807986)
Update Found:  Windows Malicious Software Removal Tool - March 2013 (KB890830)

Download complete.  Installing updates ...

The system must be rebooted to complete installation.
cscript exited on "myServer" with error code 3.
Reboot required...
Waiting for server to reboot (35)

Searching for approved updates ...

There are no updates to install.
cscript exited on "myServer" with error code 2.
Servername "myServer" is fully patched after 2 loops

Ich möchte die Ausgabe sehen oder irgendwo speichern können, damit ich darauf zurückgreifen kann, ob das Skript ausgeführt wurde und welche Server neu gestartet wurden usw.

Fazit:

In der Vergangenheit habe ich das Skript ausgeführt und die Server nacheinander aktualisiert und mir die gewünschte Ausgabe geliefert. Als ich jedoch anfing, mehr Server zu erstellen, dauerte diese Aufgabe zu lange. Aus diesem Grund versuche ich, den Hintergrund zu verwenden Jobs mit "Start-Job".

Kann mir jemand helfen, das herauszufinden, bitte?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage