Partilhar via


Remove-Job

Exclui um trabalho em segundo plano do PowerShell.

Sintaxe

SessionIdParameterSet (Predefiniçã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 que foram iniciados pelo cmdlet Start-Job ou por cmdlets como Invoke-Command que suportam o parâmetro AsJob.

Você pode usar Remove-Job para excluir todos os trabalhos ou excluir os trabalhos selecionados. Os trabalhos são identificados por seus Name, Id, InstanceId, Commandou State. Ou um objeto de trabalho pode ser enviado pelo pipeline para Remove-Job. Sem parâmetros ou valores de parâmetros, 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 no disco e os resultados de todas as instâncias de trabalho acionadas.

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 o seu nome

Este exemplo usa uma variável e o pipeline para excluir um trabalho pelo 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 pela canalização para Remove-Job.

Uma alternativa é usar o parâmetro Job, como Remove-Job -Job $batch.

Exemplo 2: Eliminar 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 obtém todas as tarefas na sessão atual do PowerShell. Os objetos de trabalho são enviados através do pipeline para Remove-Job.

Exemplo 3: Excluir trabalhos NotStarted

Este exemplo exclui todos os trabalhos da sessão atual do PowerShell que não foram iniciados.

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

Este exemplo exclui todos os trabalhos da sessão atual com nomes amigáveis que terminem com em lote, incluindo trabalhos que estão em execução.

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 asterisco curinga (*) para localizar os nomes de tarefas que terminam com o lote . O parâmetro Force apaga trabalhos que estão em execução.

Exemplo 5: Excluir um trabalho que foi criado por Invoke-Command

Este exemplo remove um trabalho que foi iniciado em um computador remoto usando Invoke-Command com o parâmetro AsJob.

Como o exemplo usa o parâmetro AsJob, o objeto job é 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 Server01 computador. O parâmetro AsJob executa o ScriptBlock como um trabalho em segundo plano. O objeto de trabalho é armazenado na variável $job. O objeto variável $job é enviado pelo pipeline para Remove-Job.

Exemplo 6: Excluir um trabalho que foi criado por Invoke-Command e Start-Job

Este exemplo mostra como remover um trabalho em um computador remoto que foi iniciado usando Invoke-Command para executar Start-Job. O objeto de trabalho é criado no computador remoto e os comandos remotos são usados para gerenciar o trabalho. Uma conexão persistente é necessária ao executar um comando 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 um 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 é eliminado.

Exemplo 7: Excluir um trabalho usando seu InstanceId

Este exemplo remove uma tarefa com base no 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 pela canalização 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 dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

CommandParameterSet
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Confirm

Solicita confirmação antes que Remove-Job seja executado.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Cf.

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Filter

Exclui trabalhos que satisfazem todas as condições estabelecidas na tabela de hash associada. Introduza uma tabela de hash onde as chaves são propriedades da tarefa e os valores são os respetivos valores.

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 dos parâmetros

Tipo:Hashtable
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

FilterParameterSet
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos: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 dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:F

Conjuntos de parâmetros

SessionIdParameterSet
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
JobParameterSet
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
InstanceIdParameterSet
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
NameParameterSet
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
FilterParameterSet
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Id

Exclui trabalhos em segundo plano com o Id especificado de. Pode inserir um array separado por vírgula. O Id do trabalho de é um inteiro exclusivo que identifica um trabalho dentro da sessão atual.

Para encontrar o Id de um trabalho, use Get-Job sem parâmetros.

Propriedades dos parâmetros

Tipo:

Int32[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

SessionIdParameterSet
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-InstanceId

Exclui trabalhos com o InstanceId especificado. Você pode inserir uma matriz separada por vírgula. Um InstanceId é um GUID exclusivo que identifica uma tarefa.

Para encontrar o InstanceId de um trabalho, use Get-Job.

Propriedades dos parâmetros

Tipo:

Guid[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

InstanceIdParameterSet
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Job

Especifica os trabalhos a serem excluídos. Insira uma variável que contenha as tarefas ou um comando para obter as tarefas. Você pode inserir uma matriz separada por vírgula.

Você pode enviar objetos de trabalho pelo pipeline para Remove-Job.

Propriedades dos parâmetros

Tipo:

Job[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

JobParameterSet
Position:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Name

Apenas exclui tarefas com o nome amigável especificado. Curingas são permitidos. Você pode inserir uma matriz separada por vírgula.

Não é garantido que nomes amigáveis para trabalhos sejam exclusivos, mesmo numa sessão do PowerShell. Use os parâmetros WhatIf e Confirm quando eliminar ficheiros por nome.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

NameParameterSet
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-State

Somente exclui trabalhos com o estado especificado. Para excluir trabalhos com um estado de Executando, use o parâmetro Force.

Valores aceites:

  • AtBreakpoint
  • Bloqueado
  • Concluído
  • Desconectado
  • Falha
  • Não Iniciado
  • Corrida
  • Parado
  • Parar
  • Suspenso
  • Suspensão

Propriedades dos parâmetros

Tipo:JobState
Default value:None
Valores aceites:AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

StateParameterSet
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-WhatIf

Mostra o que aconteceria se Remove-Job corresse. O cmdlet não é executado.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Wi

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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 canalizar um Job objeto para este cmdlet.

Saídas

None

Este cmdlet não retorna nenhuma saída.

Notas

O PowerShell inclui os seguintes aliases para Remove-Job:

  • Todas as plataformas:
    • rjb

Um trabalho do PowerShell cria um novo processo. Quando o trabalho é concluído, o processo é encerrado. Quando Remove-Job é executado, o estado do trabalho é removido.

Se um trabalho parar antes da conclusão e seu processo não tiver sido encerrado, o processo será encerrado à força.