Remove-Job
Exclui um trabalho em segundo plano do PowerShell.
Sintaxe
SessionIdParameterSet (Padrão)
Remove-Job
[-Id] <Int32[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
JobParameterSet
Remove-Job
[-Job] <Job[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
NameParameterSet
Remove-Job
[-Name] <String[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceIdParameterSet
Remove-Job
[-InstanceId] <Guid[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
FilterParameterSet
Remove-Job
[-Filter] <Hashtable>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
StateParameterSet
Remove-Job
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
CommandParameterSet
Remove-Job
[-Command <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
O cmdlet Remove-Job exclui trabalhos em segundo plano do PowerShell iniciados pelo cmdlet Start-Job ou por cmdlets, como Invoke-Command que dão suporte ao parâmetro AsJob.
Você pode usar Remove-Job para excluir todos os trabalhos ou excluir trabalhos selecionados. Os trabalhos são identificados pelo de Nome do, ID, InstanceId, de Comandoou de Estado. Ou um objeto de trabalho pode ser enviado pelo pipeline para Remove-Job. Sem parâmetros ou valores de parâmetro, Remove-Job não tem efeito.
Desde o PowerShell 3.0, Remove-Job pode excluir tipos de trabalho personalizados, como trabalhos agendados e trabalhos de fluxo de trabalho. Por exemplo, Remove-Job exclui o trabalho agendado, todas as instâncias do trabalho agendado em disco e os resultados de todas as instâncias de trabalho ativadas.
Se você tentar excluir um trabalho em execução, Remove-Job falhará. Use o cmdlet Stop-Job para interromper um trabalho em execução. Ou use Remove-Job com o parâmetro Force para excluir um trabalho em execução.
Os trabalhos permanecem no cache de trabalho global até que você exclua o trabalho em segundo plano ou feche a sessão do PowerShell.
Exemplos
Exemplo 1: Excluir um trabalho usando seu nome
Este exemplo usa uma variável e o pipeline para excluir um trabalho por nome.
$batch = Get-Job -Name BatchJob
$batch | Remove-Job
Get-Job usa o parâmetro Name para especificar o trabalho, BatchJob. O objeto de trabalho é armazenado na variável $batch. O objeto em $batch é enviado pelo pipeline para Remove-Job.
Uma alternativa é usar o parâmetro Trabalho, como Remove-Job -Job $batch.
Exemplo 2: Excluir todos os trabalhos em uma sessão
Neste exemplo, todos os trabalhos na sessão atual do PowerShell são excluídos.
Get-Job | Remove-Job
Get-Job reúne todos os trabalhos na sessão atual do PowerShell. Os objetos do trabalho são enviados pelo pipeline para Remove-Job.
Exemplo 3: Excluir trabalhos não iniciados
Este exemplo exclui todos os trabalhos da sessão atual do PowerShell que ainda não foi iniciada.
Remove-Job -State NotStarted
Remove-Job usa o parâmetro State para especificar o status do trabalho.
Exemplo 4: excluir trabalhos usando um nome amigável
Esse exemplo exclui todos os trabalhos da sessão atual com nomes amigáveis que terminam com batch.
Remove-Job -Name *batch -Force
Remove-Job usa o parâmetro Name para especificar um padrão de nome de trabalho. O padrão inclui o curinga asterisco (*) para localizar todos os nomes de trabalho que terminam com lote. O parâmetro Force exclui tarefas que estão em execução.
Exemplo 5: excluir um trabalho que foi criado pelo Invoke-Command
Este exemplo remove um trabalho iniciado em um computador remoto usando Invoke-Command com o parâmetro AsJob.
Como o exemplo usa o parâmetro AsJob, o objeto de trabalho é criado no computador local. Mas o trabalho é executado em um computador remoto. Como resultado, você usa comandos locais para gerenciar o trabalho.
$job = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} -AsJob
$job | Remove-Job
Invoke-Command executa um trabalho no computador Server01. O parâmetro AsJob executa o ScriptBlock como um trabalho em segundo plano. O objeto de trabalho é armazenado na variável $job. O objeto de variável $job é enviado pelo pipeline para Remove-Job.
Exemplo 6: excluir um trabalho criado por Invoke-Command e Start-Job
Este exemplo mostra como remover um trabalho em um computador remoto iniciado usando Invoke-Command para executar Start-Job. O objeto de trabalho é criado no computador remoto e comandos remotos são usados para gerenciar o trabalho. Uma conexão persistente é necessária ao executar um comando de Start-Job remoto.
$S = New-PSSession -ComputerName Server01
Invoke-Command -Session $S -ScriptBlock {Start-Job -ScriptBlock {Get-Process} -Name MyJob}
Invoke-Command -Session $S -ScriptBlock {Remove-Job -Name MyJob}
New-PSSession cria uma PSSession, uma conexão persistente, para o computador Server01. A conexão é salva na variável $S.
Invoke-Command se conecta à sessão salva no $S. O ScriptBlock usa Start-Job para iniciar um trabalho remoto. O trabalho executa um comando Get-Process e usa o parâmetro Name para especificar um nome de trabalho amigável, myJob.
Invoke-Command usa a sessão $S e executa Remove-Job. O parâmetro Name especifica que o trabalho chamado MyJob é excluído.
Exemplo 7: excluir um trabalho usando sua InstanceId
Este exemplo remove um trabalho com base em seu InstanceId.
$job = Start-Job -ScriptBlock {Get-Process powershell}
$job | Format-List -Property *
Remove-Job -InstanceId ad02b942-8007-4407-87f3-d23e71955872
State : Completed
HasMoreData : True
StatusMessage :
Location : localhost
Command : Get-Process powershell
JobStateInfo : Completed
Finished : System.Threading.ManualResetEvent
InstanceId : ad02b942-8007-4407-87f3-d23e71955872
Id : 3
Name : Job3
ChildJobs : {Job4}
PSBeginTime : 7/26/2019 11:36:56
PSEndTime : 7/26/2019 11:36:57
PSJobTypeName : BackgroundJob
Output : {}
Error : {}
Progress : {}
Verbose : {}
Debug : {}
Warning : {}
Information : {}
Start-Job inicia um trabalho em segundo plano e o objeto de trabalho é salvo na variável $job.
O objeto em $job é enviado pelo pipeline para Format-List. O parâmetro Property usa um asterisco (*) para especificar que todas as propriedades do objeto são exibidas em uma lista.
Remove-Job usa o parâmetro InstanceId para especificar o trabalho a ser excluído.
Parâmetros
-Command
Exclui trabalhos que incluem as palavras especificadas no comando. Você pode inserir uma matriz separada por vírgula.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
CommandParameterSet
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Confirm
Solicita a confirmação antes que Remove-Job seja executado.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | cf |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Filter
Exclui trabalhos que atendem a todas as condições estabelecidas na tabela de hash associada. Insira uma tabela de hash na qual as chaves são propriedades do trabalho e os valores são valores de propriedade do trabalho.
Esse parâmetro funciona apenas em tipos de trabalho personalizados, como trabalhos de fluxo de trabalho e trabalhos agendados. Ele não funciona em trabalhos em segundo plano padrão, como aqueles criados usando o Start-Job.
Esse parâmetro é introduzido no PowerShell 3.0.
Propriedades do parâmetro
| Tipo: | Hashtable |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
FilterParameterSet
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Force
Exclui um trabalho mesmo que o estado do trabalho seja Executando. Se o parâmetro Force não for especificado, Remove-Job não excluirá trabalhos em execução.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | F |
Conjuntos de parâmetros
SessionIdParameterSet
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
JobParameterSet
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
InstanceIdParameterSet
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
NameParameterSet
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
FilterParameterSet
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Id
Exclui trabalhos em segundo plano com o Id especificado. É possível inserir uma matriz separada por vírgulas. O Id do trabalho é um número inteiro exclusivo que identifica um trabalho na sessão atual.
Para encontrar o Id de um trabalho, use Get-Job sem parâmetros.
Propriedades do parâmetro
| Tipo: | Int32[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
SessionIdParameterSet
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-InstanceId
Exclui trabalhos com o InstanceId especificado. Você pode inserir uma matriz separada por vírgula. Um InstanceId é um GUID exclusivo que identifica um trabalho.
Para localizar o InstanceId de um trabalho, use Get-Job.
Propriedades do parâmetro
| Tipo: | Guid[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
InstanceIdParameterSet
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Job
Especifica os trabalhos a serem excluídos. Insira uma variável que contenha as tarefas ou um comando que obtenha as tarefas. Você pode inserir uma matriz separada por vírgula.
Você pode enviar objetos de trabalho pelo pipeline para Remove-Job.
Propriedades do parâmetro
| Tipo: | Job[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
JobParameterSet
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | True |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Name
Exclui apenas os trabalhos com o nome amigável especificado. Caracteres curinga são permitidos. Você pode inserir uma matriz separada por vírgula.
Nomes amigáveis para trabalhos não são garantidos como exclusivos, mesmo em uma sessão do PowerShell. Use os parâmetros WhatIf e Confirm ao excluir arquivos por nome.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | True |
| DontShow: | False |
Conjuntos de parâmetros
NameParameterSet
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-State
Exclui apenas trabalhos com o estado especificado. Para excluir trabalhos com um estado de Executando, use o parâmetro Force.
Valores aceitos:
- AtBreakpoint
- Bloqueado
- Concluído
- Desconectado
- Falha
- NotStarted
- Correndo
- Parado
- Parar
- Suspenso
- Suspensão
Propriedades do parâmetro
| Tipo: | JobState |
| Valor padrão: | None |
| Valores aceitos: | AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
StateParameterSet
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-WhatIf
Mostra o que aconteceria se Remove-Job fosse executado. O cmdlet não é executado.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | wi |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
Entradas
Job
Você pode redirecionar um objeto Job para este cmdlet.
Saídas
None
Esse cmdlet não retorna nenhuma saída.
Observações
O PowerShell inclui os seguintes aliases para Remove-Job:
- Todas as plataformas:
rjb
Um trabalho do PowerShell cria um novo processo. Quando o trabalho é finalizado, o processo termina. Quando Remove-Job é executado, o estado do trabalho é removido.
Se um trabalho for interrompido antes da conclusão e seu processo não tiver sido encerrado, o processo será encerrado à força.