Powershell: Exécuter plusieurs tâches dans Parralel et afficher les résultats de streaming à partir des jobs d'arrière-plan

Aperçu

À la recherche d'appeler un script Powershell qui prend un argument, chaque tâche s'exécute en arrière-plan, et me montre la sortie détaillée.

Problème, je suis en cours d'exécution dans

Le script semble fonctionner, mais je veux vérifier à coup sûr en streaming les résultats des travaux en arrière-plan, car ils sont en cours d'exécution.

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

Ce que je suis actuellement en train de voir:

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

Ce que je veux voir:

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

Je veux être en mesure de voir la sortie ou le magasin que quelque part afin que je puisse consulter pour être sûr que le script s'est exécuté et de voir quels sont les serveurs redémarré, etc.

Conclusion:

Dans le passé, j'ai exécuté le script et il est allé par le biais de la mise à jour des serveurs un par un et m'a donné la sortie que je voulais, mais quand j'ai commencé à faire plus de serveurs - cette tâche a pris trop de temps, c'est pourquoi je suis en train d'utiliser les travaux de fond avec "Start-Job".

Quelqu'un peut m'aider à comprendre cela, s'il vous plaît?

source d'informationauteur talbert.houle