Remove-Job
Exclui um trabalho em segundo plano do PowerShell.
Syntax
Remove-Job
[-Id] <Int32[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Job] <Job[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Name] <String[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-InstanceId] <Guid[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Filter] <Hashtable>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Command <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
O Remove-Job
cmdlet exclui trabalhos em segundo plano do Start-Job
PowerShell que foram iniciados pelo cmdlet ou por cmdlets como Invoke-Command
os 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 seu Nome, ID, ID da instância, Comando ou Estado. 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 Stop-Job
cmdlet 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 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 $batch
variável. O objeto em $batch
é enviado pelo pipeline para Remove-Job
.
Uma alternativa é usar o parâmetro Job , 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
obtém todos os trabalhos na sessão atual do PowerShell. Os objetos de trabalho são enviados pelo 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 terminam com batch*, incluindo trabalhos 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 curinga asterisco (*
) para localizar todos os nomes de trabalho que terminam com lote. O parâmetro Force exclui trabalhos 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
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 computador Server01 . O parâmetro AsJob executa o ScriptBlock como um trabalho em segundo plano. O objeto de trabalho é armazenado na $job
variável. O $job
objeto variável é 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 . 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 remoto Start-Job
.
$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, com o computador Server01 . A conexão é salva na $S
variável.
Invoke-Command
se conecta à sessão salva em $S
. O ScriptBlock usa Start-Job
para iniciar um trabalho remoto. O trabalho executa um Get-Process
comando e usa o parâmetro Name para especificar um nome de trabalho amigável, MyJob.
Invoke-Command
usa a $S
sessão e executa Remove-Job
o . O parâmetro Name especifica que o trabalho chamado MyJob é excluído.
Exemplo 7: Excluir um trabalho usando seu 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 $job
variável.
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 sejam 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.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
Solicita confirmação antes Remove-Job
de ser executado.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Filter
Elimina as tarefas que cumprem todas as condições estabelecidas na tabela hash associada. Introduz uma tabela hash na qual as chaves são propriedades da tarefa e os valores são valores da propriedade da tarefa.
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.
Type: | Hashtable |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Force
Exclui um trabalho mesmo que o estado do trabalho seja Em Execução. Se o parâmetro Force não for especificado, Remove-Job
não excluirá trabalhos em execução.
Type: | SwitchParameter |
Aliases: | F |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Exclui trabalhos em segundo plano com a ID especificada. Você pode inserir uma matriz separada por vírgula. O ID do trabalho é 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.
Type: | Int32[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | 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 encontrar o InstanceId de um trabalho, use Get-Job
.
Type: | Guid[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Job
Especifica os trabalhos a serem excluídos. Insira uma variável que contenha os trabalhos ou um comando que obtenha os trabalhos. Você pode inserir uma matriz separada por vírgula.
Você pode enviar objetos de trabalho pelo pipeline para Remove-Job
.
Type: | Job[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Exclui apenas trabalhos 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 em uma sessão do PowerShell. Use os parâmetros WhatIf e Confirm ao excluir arquivos por nome.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-State
Somente exclui trabalhos com o estado especificado. Para excluir trabalhos com um estado de Execução, use o parâmetro Force .
Valores aceites:
- AtBreakpoint
- Bloqueado
- Concluído
- Desligado
- Com falhas
- NotStarted
- Em Execução
- Parado
- A parar
- Suspenso
- A suspender
Type: | JobState |
Accepted values: | AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Mostra o que aconteceria se Remove-Job
fosse executado. O cmdlet não é executado.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Você pode canalizar um objeto Job para este cmdlet.
Saídas
None
Este cmdlet não retorna nenhuma saída.
Notas
O Windows PowerShell inclui os seguintes aliases para Remove-Job
:
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.