Lorsque vous voulez gagner du temps et que vous avez plusieurs tâches à effectuer, vous pouvez utiliser la manière suivante afin de lancer plusieurs instances de Powershell à l’aide de jobs (Start-Job).
Par la suite grâce à la commande Wait-Job, vous pourrez attendre que tous vos jobs soient terminer pour lancer une autre commande.
Un petit script sera plus clair qu’un long discours :
# differents jobs lancés en processus parralèles
$job1 = Start-Job { Dir $env:windir *.log -Recurse -ea 0 }
$job2 = Start-Job { Start-Sleep -Seconds 10 }
$job3 = Start-Job { Get-WmiObject Win32_Service }
# Ici, on attend que tous les jobs soient terminés
Wait-Job $job1, $job2, $job3
# réception des résultats
Receive-Job $job1, $job2, $job3
# suppression des jobs
Remove-Job $job1, $job2, $job3
Cette manière de travailler en Powershell est intéressante lorsque vous lancez de longues tâches dans des « login scripts ».