Stop-Job
Interrompe um trabalho em segundo plano do PowerShell.
Sintaxe
SessionIdParameterSet (Predefinição)
Stop-Job
[-Id] <Int32[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
JobParameterSet
Stop-Job
[-Job] <Job[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
NameParameterSet
Stop-Job
[-Name] <String[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceIdParameterSet
Stop-Job
[-InstanceId] <Guid[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
StateParameterSet
Stop-Job
[-State] <JobState>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
FilterParameterSet
Stop-Job
[-Filter] <Hashtable>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
O cmdlet Stop-Job interrompe os trabalhos em segundo plano do PowerShell que estão em andamento. Você pode usar esse cmdlet para interromper todos os trabalhos ou interromper trabalhos selecionados com base em seu nome, ID, ID da instância ou estado, ou passando um objeto de trabalho para Stop-Job .
Você pode usar Stop-Job para interromper trabalhos em segundo plano, como aqueles que foram iniciados usando o cmdlet Start-Job ou o parâmetro AsJob de qualquer cmdlet. Quando você interrompe um trabalho em segundo plano, o PowerShell conclui todas as tarefas pendentes nessa fila de trabalhos e, em seguida, encerra o trabalho. Nenhuma nova tarefa é adicionada à fila depois que esse comando é enviado.
Este cmdlet não exclui trabalhos em segundo plano. Para excluir um trabalho, use o cmdlet Remove-Job.
A partir do Windows PowerShell 3.0, Stop-Job também interrompe tipos de trabalho personalizados, como trabalhos de fluxo de trabalho e instâncias de trabalhos agendados. Para habilitar Stop-Job para interromper um trabalho com tipo de trabalho personalizado, importe o módulo que dá suporte ao tipo de trabalho personalizado para a sessão antes de executar um comando Stop-Job, usando o cmdlet Import-Module ou usando ou obtendo um cmdlet no módulo. Para obter informações sobre um tipo de trabalho personalizado específico, consulte a documentação do recurso de tipo de trabalho personalizado.
Exemplos
Exemplo 1: Parar um trabalho em um computador remoto usando Invoke-Command
$s = New-PSSession -ComputerName Server01 -Credential Domain01\Admin02
$j = Invoke-Command -Session $s -ScriptBlock {Start-Job -ScriptBlock {Get-EventLog System}}
Invoke-Command -Session $s -ScriptBlock { Stop-job -Job $Using:j }
Este 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 usando o cmdlet Invoke-Command para executar um comando Start-Job remotamente, o objeto de trabalho é armazenado no computador remoto. Você deve usar outro comando Invoke-Command para executar um comando Stop-Job remotamente. Para obter mais informações sobre trabalhos remotos em segundo plano, consulte about_Remote_Jobs.
O primeiro comando cria uma sessão do PowerShell (PSSession) no computador Server01 e, em seguida, armazena 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
Quando o comando é concluído, o trabalho é interrompido e o PSSession no $s está disponível para uso.
Exemplo 2: Parar um trabalho em segundo plano
Stop-Job -Name "Job1"
Este comando interrompe o trabalho em segundo plano Job1.
Exemplo 3: Parar vários trabalhos em segundo plano
Stop-Job -Id 1, 3, 4
Este comando para três trabalhos. Identifica-os pelos seus documentos de identificação.
Exemplo 4: Parar todos os trabalhos em segundo plano
Get-Job | Stop-Job
Este comando interrompe todos os trabalhos em segundo plano na sessão atual.
Exemplo 5: Parar todos os trabalhos em segundo plano bloqueados
Stop-Job -State Blocked
Este comando para todos os trabalhos que estão bloqueados.
Exemplo 6: Parar um trabalho usando um ID de instância
Get-Job | Format-Table ID, Name, Command, @{Label="State";Expression={$_.JobStateInfo.State}},
InstanceID -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
Stop-Job -InstanceId e3bbfed1-9c53-401a-a2c3-a8db34336adf
Esses comandos mostram como parar um trabalho com base em sua ID de instância.
O primeiro comando usa o cmdlet 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 das propriedades especificadas de cada trabalho. A tabela inclui o ID da instância de cada trabalho. Ele usa uma propriedade calculada para exibir o estado do trabalho.
O segundo comando usa um comando Stop-Job que tem o parâmetro InstanceID para interromper um trabalho selecionado.
Exemplo 7: Parar um trabalho num computador remoto
$j = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-EventLog System} -AsJob
$j | Stop-Job -PassThru
Id Name State HasMoreData Location Command
-- ---- ---- ----------- -------- -------
5 Job5 Stopped True user01-tablet get-eventlog system
Este 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 usando o parâmetro
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.
Este comando retorna um objeto de trabalho, que é o mesmo objeto de trabalho que o cmdlet 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 é Parado.
Para obter mais informações sobre trabalhos remotos em segundo plano, consulte about_Remote_Jobs.
Parâmetros
-Confirm
Solicita confirmação antes de executar o cmdlet.
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
Especifica uma tabela hash de condições. Este cmdlet interrompe trabalhos que satisfazem todas as condições. 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 cmdlet Start-Job. Para obter informações sobre o suporte para esse parâmetro, consulte o tópico de ajuda para o tipo de trabalho.
Esse parâmetro foi introduzido no Windows 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 |
-Id
Especifica as IDs dos trabalhos que esse cmdlet interrompe. O padrão é todos os trabalhos na sessão atual.
O ID é um número inteiro que identifica exclusivamente o trabalho na sessão atual.
É mais fácil de lembrar e digitar do que o ID da instância, mas é exclusivo apenas na sessão atual.
Você pode digitar um ou mais IDs, separados por vírgulas.
Para encontrar a ID de um trabalho, digite Get-Job.
Propriedades dos parâmetros
| Tipo: | Int32[] |
| Default value: | All jobs |
| 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
Especifica as IDs de instância de trabalhos que esse cmdlet interrompe. O padrão é todas as tarefas.
Um ID de instância é um GUID que identifica exclusivamente o trabalho no computador. Para localizar a ID da instância de um trabalho, use Get-Job.
Propriedades dos parâmetros
| Tipo: | Guid[] |
| Default value: | All jobs |
| 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 interrompidos por esse cmdlet. Insira uma variável que contenha as tarefas ou um comando para obter as tarefas. 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.
Propriedades dos parâmetros
| Tipo: | Job[] |
| Default value: | All jobs |
| 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
Especifica nomes amigáveis de trabalhos interrompidos por esse cmdlet. Insira os nomes dos trabalhos em uma lista separada por vírgulas ou use caracteres curinga (*) 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 é garantido que o nome amigável seja exclusivo, use os parâmetros WhatIf e Confirm ao interromper trabalhos por nome.
Propriedades dos parâmetros
| Tipo: | String[] |
| Default value: | All jobs |
| 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 |
-PassThru
Retorna um objeto que representa o item com o qual você está trabalhando. Por padrão, esse cmdlet não gera nenhuma saída.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | False |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
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 |
-State
Especifica um estado de trabalho. Este cmdlet interrompe apenas trabalhos no estado especificado. Os valores aceitáveis para este parâmetro são:
- Não Iniciado
- Correr
- Concluído
- Falha
- Parado
- Bloqueado
- Suspenso
- Desconectado
- Suspensão
- Parar
Para obter mais informações sobre estados de trabalho, consulte de enumeração JobState na biblioteca MSDN.
Propriedades dos parâmetros
| Tipo: | JobState |
| Default value: | All jobs |
| Valores aceites: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
| 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 o cmdlet fosse executado. 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
System.Management.Automation.RemotingJob
Você pode canalizar um objeto de trabalho para este cmdlet.
Saídas
None, System.Management.Automation.PSRemotingJob
Este cmdlet retorna um objeto de trabalho, se você especificar o parâmetro PassThru. Caso contrário, esse cmdlet não gerará nenhuma saída.