PowerShell: jugar con trabajos en segundo plano
En esta publicación de blog, me gustaría brindarle algunos ejemplos relacionados con trabajos en segundo plano de PowerShell para aprovechar. Entremos.
Digamos que quiero hacer ping a algunas computadoras. Esto consume tiempo. Por eso quiero que esta tarea se ejecute en segundo plano como un trabajo en segundo plano de PowerShell.
Primero, creo algunos nombres de computadora.
$namen = @(
'orf.at'
'sid-500.com'
'8.8.8.8'
'9.9.9.9'
)
Luego haré una comprobación rápida si hay otros trabajos ejecutándose en segundo plano.
Get-Job | Remove-Job
Luego comienzo mi trabajo en segundo plano “ping” para hacer ping a todos los nombres de computadoras en $namen. Tenga en cuenta que uso la variable $using para poder usar $namen, que es una variable global y, por lo tanto, está fuera del alcance del bloque de script.
Start-Job -Name 'ping' `
-ScriptBlock {Test-Connection -ComputerName $using:namen}
Un vistazo rápido a Get-Job muestra que este trabajo se está ejecutando actualmente.
Get-Job -State 'Running'
En cualquier caso, vale la pena mencionar que una vez finalizado el trabajo, el resultado no se muestra y que, sobre todo, el resultado sólo se muestra una vez, a menos que utilice el parámetro -Keep.
Receive-Job -Name ping
Receive-Job -Name ping -Keep # do not delete output
Eso es todo. Espero haber podido arrojar algo de luz sobre los trabajos en segundo plano de PowerShell.

