Como evito que o Windows Powershell seja bloqueado quando eu executo um comando?
Use o cmdlet Start-Job
para iniciar trabalhos em segundo plano.
Este é o equivalente a Powershell de usar &
no final de um comando no Unix / Linux.
Trabalhos em segundo plano do PowerShell
The easiest way to create a PowerShell background job is to use the
Start-Job
cmdlet. You can specify a scriptblock with the cmdlet. For example, the following command runs a simple scriptblock that gets the numbers between 1 and 50 as a background job:Start-Job {1..50}
You can pass arguments to a scriptblock with this one-line command:
Start-Job {Param($log,$newest) Get-EventLog $log Newest $newest} -ArgumentList "system",25
Or you can run scripts:
Start-Job -FilePath C:\scripts\Send-UptimeMail.ps1 -ArgumentList (Get-Credential [email protected])
You can see the results of these three commands below. I ran these commands in PowerShell 3.0. However, they'll also work in PowerShell 2.0, although you won't see the PSJobTypeName column.
The output from
Start-Job
is a job queue object. You use the-Job
cmdlets to manage jobs and their results. You can reference jobs by an ID. In the above image, notice how the job IDs jump from 1 to 3 to 5.
Fonte Jobs em background do PowerShell
O link acima contém muito mais detalhes sobre os seguintes tópicos:
-
Usando o cmdlet
Get-WMIObject
para criar trabalhos em segundo plano -
Usando o cmdlet
Invoke-Command
para criar trabalhos em segundo plano -
Gerenciando trabalhos em segundo plano
-
Recuperando resultados do trabalho
-
Parando e esperando trabalhos