Remove-Job
Exclui um trabalho em segundo plano do Windows PowerShell.
Sintaxe
Remove-Job [-Id] <Int32[]> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]
Remove-Job [-Command <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]
Remove-Job [[-InstanceId] <Guid[]>] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]
Remove-Job [-Job] <Job[]> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]
Remove-Job [[-Name] <string[]>] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]
Remove-Job [-State {<NotStarted> | <Running> | <Completed> | <Failed> | <Stopped> | <Blocked>}] [-Confirm] [-WhatIf] [<CommonParameters>]
Descrição
O cmdlet Remove-Job exclui os trabalhos em segundo plano do Windows PowerShell que foram iniciados usando Start-Job ou o parâmetro AsJob de qualquer cmdlet.
Você pode usar esse cmdlet para excluir todos os trabalhos ou excluir trabalhos selecionados com base no nome, ID, ID de instância, comando ou estado, ou transmitindo um objeto de trabalho para Remove-Job. Sem parâmetros ou valores de parâmetros, Remove-Job não tem efeito.
Antes de excluir um trabalho em execução, use o cmdlet Stop-Job para interromper o trabalho. Se você tentar excluir um trabalho em execução, o comando falhará. Você pode usar o parâmetro Force de Remove-Job para excluir um trabalho em execução.
Se você não excluir um trabalho em segundo plano, o trabalho permanecerá no cache de trabalho global até que você feche a sessão na qual o trabalho foi criado.
Parâmetros
-Command <string[]>
Remove trabalhos que incluem as palavras especificadas no comando.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
false |
-Force
Exclui o trabalho mesmo que o status seja “Running”. Sem o parâmetro Force, Remove-Job não excluirá um trabalho em execução.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Id <Int32[]>
Exclui trabalhos em segundo plano com as IDs especificadas.
A ID é um inteiro que identifica com exclusividade o trabalho dentro da sessão atual. É mais fácil de lembrar e digitar do que a ID de instância, mas é exclusiva somente na sessão atual. É possível digitar uma ou mais IDs (separadas por vírgulas). Para localizar a ID de um trabalho, digite "Get-Job" sem parâmetros.
Necessário? |
true |
Posição? |
1 |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
false |
-InstanceId <Guid[]>
Exclui trabalhos com as IDs de instância especificadas.
Uma ID de instância é um GUID que identifica com exclusividade o trabalho no computador. Para localizar a ID de instância de um trabalho, use Get-Job ou exiba o objeto de trabalho.
Necessário? |
false |
Posição? |
1 |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
false |
-Job <Job[]>
Especifica os trabalhos a serem excluídos. Insira uma variável que contenha os trabalhos ou um comando que obtenha os trabalhos. Você também pode usar um operador de pipeline para enviar trabalhos para o cmdlet Remove-Job.
Necessário? |
true |
Posição? |
1 |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByValue, ByPropertyName) |
Aceitar caracteres curinga? |
false |
-Name <string[]>
Exclui apenas os trabalhos com os nomes amigáveis especificados. Os caracteres curinga são permitidos.
Como não há garantia de que o nome amigável seja exclusivo, mesmo dentro da sessão, use os parâmetros WhatIf e Confirm ao excluir trabalhos por nome.
Necessário? |
false |
Posição? |
1 |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
true |
-State <JobState>
Exclui apenas trabalhos com o status especificado. Os valores válidos são NotStarted, Running, Completed, Stopped, Failed e Blocked. Para excluir trabalhos com o status Running, use o parâmetro Force.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
false |
-Confirm
Solicita confirmação antes da execução do comando.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-WhatIf
Descreve o que aconteceria se você executasse o comando, sem executá-lo de fato.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
<CommonParameters>
Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.
Entradas e saídas
O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.
Entradas |
System.Management.Automation.Job É possível canalizar um objeto de trabalho para Remove-Job. |
Saídas |
Nenhum Este cmdlet não gera nenhuma saída. |
Exemplo 1
C:\PS>$batch = get-job -name BatchJob
C:\PS> $batch | remove-job
Descrição
-----------
Esses comandos excluem um trabalho em segundo plano denominado BatchJob da sessão atual. O primeiro comando usa o cmdlet Get-Job para obter um objeto que representa o trabalho e salva o trabalho na variável $batch. O segundo comando usa um operador de pipeline (|) para enviar o trabalho para o cmdlet Remove-Job.
Esse comando equivale a usar o parâmetro Job de Remove-Job, por exemplo, "remove-job -job $batch".
Exemplo 2
C:\PS>get-job | remove-job
Descrição
-----------
Esse comando exclui todos os trabalhos da sessão atual.
Exemplo 3
C:\PS>remove-job -state NotStarted
Descrição
-----------
Esse comando exclui todos os trabalhos da sessão atual que ainda não foram iniciados.
Exemplo 4
C:\PS>remove-job -name *batch -force
Descrição
-----------
Esse comando exclui da sessão atual todos os trabalhos com nomes amigáveis que terminam com "batch", inclusive trabalhos que estão em execução.
Ele usa o parâmetro Name de Remove-Job, para especificar um padrão de nome de trabalho, e usa o parâmetro Force para assegurar que todos os trabalhos sejam removidos, mesmo os que possam estar em andamento.
Exemplo 5
C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-process} -asJob
C:\PS> $j | remove-job
Descrição
-----------
Esse exemplo mostra como usar o cmdlet Remove-Job para remover um trabalho que foi iniciado em um computador remoto com o uso do parâmetro AsJob no cmdlet Invoke-Command.
O primeiro comando usa o cmdlet Invoke-Command para executar um trabalho no computador Server01. Usa o parâmetro AsJob para executar o comando como um trabalho em segundo plano e salva o objeto de trabalho resultante na variável $j.
Como o comando usou o parâmetro AsJob, o objeto de trabalho será criado no computador local, mesmo que o trabalho seja executado em um computador remoto. Dessa forma, você usa comandos locais para gerenciar o trabalho.
O segundo comando utiliza o cmdlet Remove-Job para remover o trabalho. Ele usa um operador de pipeline (|) para enviar o trabalho em $j para Remove-Job. Observe que esse é um comando local. Um comando remoto não é necessário para remover um trabalho que foi iniciado com o uso do parâmetro AsJob.
Exemplo 6
C:\PS>$s = new-pssession -computername Server01
C:\PS> invoke-command -session $s -scriptblock {start-job -scriptblock {get-process} -name MyJob}
C:\PS> invoke-command -session $s -scriptblock {remove-job -name MyJob}
Descrição
-----------
Esse exemplo mostra como remover um trabalho que foi iniciado com o uso de Invoke-Command para executar um comando Start-Job. Nesse caso, o objeto de trabalho é criado no computador remoto e você usa comandos remotos para gerenciar o trabalho.
O primeiro comando usa o cmdlet New-PSSession para criar uma PSSession (uma conexão persistente) com o computador Server01. Uma conexão persistente é necessária quando se executa um comando Start-Job remotamente. O comando salva a PSSession na variável $s.
O segundo comando usa o cmdlet Invoke-Command para executar um comando Start-Job na PSSession em $s. O trabalho executa um comando Get-Process. Ele usa o parâmetro Name de Start-Job para especificar um nome amigável para o novo trabalho.
O terceiro comando usa o cmdlet Invoke-Command para executar um comando Remove-Job na PSSession em $s. O comando usa o parâmetro Name de Remove-Job para identificar o trabalho a ser excluído.
Exemplo 7
C:\PS>$j = start-job -script {get-process powershell}
C:\PS> $j | format-list -property *
C:\PS> remove-job -instanceID dce2ee73-f8c9-483e-bdd7-a549d8687eed
C:\PS> $j = start-job -script {get-process powershell}
C:\PS> $j | format-list -property *
HasMoreData : False
StatusMessage :
Location : localhost
Command : get-process powershell
JobStateInfo : Failed
Finished : System.Threading.ManualResetEvent
InstanceId : dce2ee73-f8c9-483e-bdd7-a549d8687eed
Id : 1
Name : Job1
ChildJobs : {Job2}
Output : {}
Error : {}
Progress : {}
Verbose : {}
Debug : {}
Warning : {}
StateChanged :
C:\PS> remove-job -instanceID dce2ee73-f8c9-483e-bdd7-a549d8687eed
Descrição
-----------
Esse exemplo mostra como remover um trabalho com base em sua ID de instância.
O primeiro comando usa o cmdlet Start-Job para iniciar um trabalho em segundo plano. O comando salva o objeto de trabalho resultante na variável $j.
O segundo comando usa um operador de pipeline (|) para enviar o objeto de trabalho em $j para um comando Format-List. O comando Format-List usa o parâmetro Property com um valor * (tudo) para exibir todas as propriedades do objeto de trabalho em uma lista.
O objeto de trabalho mostra os valores das propriedades ID e InstanceID, juntamente com as outras propriedades do objeto.
O terceiro comando usa um comando Remove-Job para remover o trabalho da sessão atual. Para gerar o comando, você pode copiar e colar o valor de InstanceID da exibição do objeto.
Para copiar um valor no console do Windows PowerShell, use o mouse para selecionar o valor e pressione Enter para copiá-lo. Para colar um valor, clique com o botão direito do mouse.
Consulte também
Conceitos
about_Jobs
about_Job_Details
about_Remote_Jobs
Start-Job
Get-Job
Receive-Job
Wait-Job
Stop-Job
Invoke-Command