Compartilhar via


Stop-Job

Interrompe um trabalho em segundo plano do Windows PowerShell.

Sintaxe

Stop-Job [[-InstanceId] <Guid[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Job [-Job] <Job[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Job [[-Name] <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Job [-Id] <Int32[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Job [-State {<NotStarted> | <Running> | <Completed> | <Failed> | <Stopped> | <Blocked>}] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrição

O cmdlet Stop-Job interrompe trabalhos em segundo plano do Windows PowerShell que estão em andamento. Você pode usar esse cmdlet para interromper todos os trabalhos ou trabalhos selecionados com base nos seus nomes, IDs, IDs de instância ou estados, ou transmitindo um objeto de trabalho para Stop-Job.

Você pode usar Stop-Job para interromper trabalhos que foram iniciados com o uso de Start-Job ou com o uso do parâmetro AsJob de Invoke-Command. Quando você interromper um trabalho em segundo plano, o Windows PowerShell concluirá todas as tarefas pendentes na fila daquele trabalho e encerrará o trabalho. Nenhuma nova tarefa é adicionada à fila depois que esse comando é enviado.

Esse cmdlet não exclui trabalhos em segundo plano. Para excluir um trabalho, use Remove-Job.

Parâmetros

-Id <Int32[]>

Interrompe trabalhos com as IDs especificadas. O padrão são todos os trabalhos da sessão atual.

A ID é um inteiro que identifica com exclusividade o trabalho dentro da sessão atual. É mais fácil de lembrar e digitar do que o InstanceId, mas ela é 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[]>

Interrompe apenas trabalhos com as IDs de instância especificadas. O padrão são todos os trabalhos.

Uma ID de instância é um GUID que identifica com exclusividade o trabalho no computador. Para localizar a ID da instância de um trabalho, use Get-Job.

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 interrompidos. 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 Stop-Job. Por padrão, Stop-Job exclui todos os trabalhos que foram iniciados na sessão atual.

Necessário?

true

Posição?

1

Valor padrão

Aceitar entrada do pipeline?

true (ByValue, ByPropertyName)

Aceitar caracteres curinga?

false

-Name <string[]>

Interrompe apenas os trabalhos com os nomes amigáveis especificados. Insira os nomes de trabalhos em uma lista separada por vírgulas ou use caracteres curingas (*) para inserir um padrão de nome de trabalho. Por padrão, Stop-Job interrompe todos os trabalhos criados na sessão atual.

Como não há garantia de que o nome amigável seja exclusivo, use os parâmetros WhatIf e Confirm ao interromper trabalhos por nome.

Necessário?

false

Posição?

1

Valor padrão

Aceitar entrada do pipeline?

true (ByPropertyName)

Aceitar caracteres curinga?

true

-PassThru

Retorna um objeto que representa o novo trabalho em segundo plano. Por padrão, este cmdlet não gera nenhuma saída.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-State <JobState>

Interrompe apenas os trabalhos no estado especificado. Os valores válidos são NotStarted, Running, Completed, Stopped, Failed e Blocked.

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.RemotingJob

É possível canalizar um objeto de trabalho para Stop-Job.

Saídas

Nenhum ou System.Management.Automation.RemotingJob

Quando você usa o parâmetro PassThru, Stop-Job retorna um objeto de trabalho. Caso contrário, esse cmdlet não gera nenhuma saída.

Exemplo 1

C:\PS>$s = new-pssession -computername Server01 -credential domain01\admin02

C:\PS> $j = invoke-command -session $s -scriptblock {start-job -scriptblock {get-eventlog system}} 

C:\PS> invoke-command -session $s -scriptblock {param($j) stop-job -job $j} -ArgumentList $j

Descrição
-----------
Esse exemplo mostra como usar o cmdlet Stop-Job para interromper um trabalho que está sendo executado em um computador remoto. 

Como o trabalho foi iniciado com o uso de Invoke-Command para executar um comando Start-Job remotamente, o objeto de trabalho é armazenado no computador remoto e você deve usar outro comando Invoke-Command para executar um comando Stop-Job remotamente. Para obter mais informações sobre trabalhos em segundo plano remotos, consulte about_Remote_Jobs.

O primeiro comando cria uma sessão do Windows PowerShell (PSSession) no computador Server01 e salva o objeto de sessão na variável $s. O comando usa as credenciais de um administrador de domínio. 

O segundo comando usa o cmdlet Invoke-Command para executar um comando Start-Job na sessão. O comando no trabalho obtém todos os eventos no log de eventos do sistema. O objeto de trabalho resultante é armazenado na variável $j. 

O terceiro comando interrompe o trabalho. Ele usa o cmdlet Invoke-Command para executar um comando Stop-Job na PSSession em Server01. Como os objetos de trabalho são armazenados em $j, que é uma variável no computador local, o comando usa a palavra-chave "param" para declarar as variáveis locais no comando e o parâmetro ArgumentList para fornecer valores para as variáveis. 

Quando o comando é concluído, o trabalho é interrompido e a PSSession em $s fica disponível para utilização.





Exemplo 2

C:\PS>stop-job -state failed

Descrição
-----------
Esse comando interrompe todos os trabalhos com um valor de estado igual a "Failed".





Exemplo 3

C:\PS>stop-job -name job1

Descrição
-----------
Esse comando interrompe o trabalho em segundo plano Job1.





Exemplo 4

C:\PS>stop-job -id 1, 3, 4

Descrição
-----------
Esse comando interrompe três trabalhos. Ele os identifica por suas IDs.





Exemplo 5

C:\PS>get-job | stop-job

Descrição
-----------
Esse comando interrompe todos os trabalhos em segundo plano na sessão atual.





Exemplo 6

C:\PS>stop-job -state blocked

Descrição
-----------
Esse comando interrompe todos os trabalhos com um status de trabalho igual a "Blocked".





Exemplo 7

C:\PS>get-job | format-table ID, Name, Command, @{Label="State";Expression={$_.jobstateinfo.state}}, I
nstanceID -auto

Id Name Command                 State  InstanceId
-- ---- -------                 -----  ----------
 1 Job1 start-service schedule Running 05abb67a-2932-4bd5-b331-c0254b8d9146
 3 Job3 start-service schedule Running c03cbd45-19f3-4558-ba94-ebe41b68ad03
 5 Job5 get-service s*         Blocked e3bbfed1-9c53-401a-a2c3-a8db34336adf

C:\PS> stop-job -instanceid e3bbfed1-9c53-401a-a2c3-a8db34336adf

Descrição
-----------
Esses comandos mostram como interromper um trabalho com base em suas IDs de instância. 

O primeiro comando usa o comando Get-Job para obter os trabalhos na sessão atual. O comando usa um operador de pipeline (|) para enviar os trabalhos para um comando Format-Table, que exibe uma tabela de propriedades especificadas de cada trabalho. A tabela inclui a ID de instância de cada trabalho. Ela usa uma propriedade calculada para exibir o estado do trabalho.

O segundo comando usa um comando Stop-Job com o parâmetro InstanceID para interromper um trabalho selecionado.





Exemplo 8

C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-eventlog system} -asjob

C:\PS> $j | stop-job -passthru

Id    Name    State      HasMoreData     Location         Command
--    ----    ----      -----------     --------          -------
5     Job5    Stopped    True            judithh-tablet   get-eventlog system

Descrição
-----------
Esse exemplo mostra como usar o cmdlet Stop-Job para interromper um trabalho que está sendo executado em um computador remoto. 

Como o trabalho foi iniciado com o uso do parâmetro AsJob de Invoke-Command, o objeto de trabalho está localizado no computador local, mesmo que o trabalho seja executado no computador remoto. Dessa forma, você pode usar um comando Stop-Job local para interromper o trabalho.

O primeiro comando usa o cmdlet Invoke-Command para iniciar um trabalho em segundo plano no computador Server01. O comando usa o parâmetro AsJob para executar o comando remoto como um trabalho em segundo plano. 

Esse comando retorna um objeto de trabalho, que é o mesmo que Start-Job retorna. O comando salva o objeto de trabalho na variável $j.

O segundo comando usa um operador de pipeline (|) para enviar o trabalho na variável $j para Stop-Job. O comando usa o parâmetro PassThru para direcionar Stop-Job para retornar um objeto de trabalho. A exibição do objeto de trabalho confirma que o estado do trabalho é "Stopped".

Para obter mais informações sobre trabalhos em segundo plano remotos, consulte about_Remote_Jobs.





Consulte também

Conceitos

about_Jobs
about_Job_Details
about_Remote_Jobs
Start-Job
Get-Job
Receive-Job
Wait-Job
Remove-Job
Invoke-Command