Stop-Job
Para uma tarefa em segundo plano do PowerShell.
Syntax
Stop-Job
[-PassThru]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-Job] <Job[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
O Stop-Job
cmdlet para as tarefas em segundo plano do PowerShell que estão em curso. Pode utilizar este cmdlet para parar todas as tarefas ou parar tarefas selecionadas com base no respetivo nome, ID, ID de instância ou estado ou ao transmitir um objeto de tarefa para Stop-Job
.
Pode utilizar Stop-Job
para parar tarefas em segundo plano, como as que foram iniciadas com o Start-Job
cmdlet ou o parâmetro AsJob de qualquer cmdlet. Quando para uma tarefa em segundo plano, o PowerShell conclui todas as tarefas pendentes nessa fila de tarefas e, em seguida, termina a tarefa. Não são adicionadas novas tarefas à fila depois de este comando ser submetido.
Este cmdlet não elimina tarefas em segundo plano. Para eliminar uma tarefa, utilize o Remove-Job
cmdlet .
A partir do Windows PowerShell 3.0, Stop-Job
também para os tipos de tarefas personalizados, como WorkflowJobs e instâncias de ScheduledJobs. Para ativar Stop-Job
a paragem de uma tarefa com o tipo de tarefa personalizada, importe o módulo que suporta o tipo de tarefa personalizada para a sessão antes de executar um Stop-Job
comando, seja utilizando o Import-Module
cmdlet ou utilizando ou obtendo um cmdlet no módulo. Para obter informações sobre um determinado tipo de tarefa personalizada, veja a documentação da funcionalidade de tipo de tarefa personalizada.
Exemplos
Exemplo 1: Parar uma tarefa num computador remoto com Invoke-Command
$s = New-PSSession -ComputerName Server01 -Credential Domain01\Admin02
$j = Invoke-Command -Session $s -ScriptBlock {Start-Job -ScriptBlock {Get-EventLog -LogName System}}
Invoke-Command -Session $s -ScriptBlock { Stop-job -Job $Using:j }
Este exemplo mostra como utilizar o Stop-Job
cmdlet para parar uma tarefa em execução num computador remoto.
Uma vez que a tarefa foi iniciada com o Invoke-Command
cmdlet para executar um Start-Job
comando remotamente, o objeto da tarefa é armazenado no computador remoto. Tem de utilizar outro Invoke-Command
comando para executar um Stop-Job
comando remotamente. Para obter mais informações sobre tarefas em segundo plano remotas, 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 $s
variável . O comando utiliza as credenciais de um administrador de domínio.
O segundo comando utiliza o Invoke-Command
cmdlet para executar um Start-Job
comando na sessão. O comando na tarefa obtém todos os eventos no registo de eventos do Sistema. O objeto de tarefa resultante é armazenado na $j
variável .
O terceiro comando para a tarefa. Utiliza o Invoke-Command
cmdlet para executar um Stop-Job
comando na PSSession no Server01. Uma vez que os objetos da tarefa estão armazenados no $j
, que é uma variável no computador local, o comando utiliza o modificador de âmbito Utilizar para identificar $j
como uma variável local. Para obter mais informações sobre a opção Utilizar modificador de âmbito, veja about_Remote_Variables.
Quando o comando for concluído, a tarefa é parada e a PSSession em $s
está disponível para utilização.
Exemplo 2: Parar uma tarefa em segundo plano
Stop-Job -Name "Job1"
Este comando para a Job1
tarefa em segundo plano.
Exemplo 3: Parar várias tarefas em segundo plano
Stop-Job -Id 1, 3, 4
Este comando para três tarefas. Identifica-os pelos respetivos IDs.
Exemplo 4: Parar todas as tarefas em segundo plano
Get-Job | Stop-Job
Este comando para todas as tarefas em segundo plano na sessão atual.
Exemplo 5: Parar todas as tarefas em segundo plano bloqueadas
Stop-Job -State Blocked
Este comando para todas as tarefas que estão bloqueadas.
Exemplo 6: Parar uma tarefa por 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
Estes comandos mostram como parar uma tarefa com base no instanceID.
O primeiro comando utiliza o Get-Job
cmdlet para obter as tarefas na sessão atual. O comando utiliza um operador de pipeline (|
) para enviar as tarefas para um Format-Table
comando, que apresenta uma tabela das propriedades especificadas de cada tarefa. A tabela inclui o InstanceID de cada tarefa. Utiliza uma propriedade calculada para apresentar o estado da tarefa.
O segundo comando utiliza um Stop-Job
comando que tem o parâmetro InstanceID para parar uma tarefa selecionada.
Exemplo 7: Parar uma tarefa num computador remoto
$j = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-EventLog -LogName System} -AsJob
$j | Stop-Job -PassThru
Id Name State HasMoreData Location Command
-- ---- ---- ----------- -------- -------
5 Job5 Stopped True user01-tablet Get-EventLog -LogName Sy...
Este exemplo mostra como utilizar o Stop-Job
cmdlet para parar uma tarefa em execução num computador remoto.
Uma vez que a tarefa foi iniciada com o parâmetro AsJob do Invoke-Command
cmdlet, o objeto Job está localizado no computador local, mesmo que a tarefa seja executada no computador remoto. Por conseguinte, pode utilizar um comando local Stop-Job
para parar a tarefa.
O primeiro comando utiliza o Invoke-Command
cmdlet para iniciar uma tarefa em segundo plano no computador Server01. O comando utiliza o parâmetro AsJob para executar o comando remoto como uma tarefa em segundo plano.
Este comando devolve um objeto de tarefa, que é o mesmo objeto de tarefa que o Start-Job
cmdlet devolve.
O comando guarda o objeto da tarefa na $j
variável .
O segundo comando utiliza um operador de pipeline para enviar a tarefa na $j
variável para Stop-Job
. O comando utiliza o parâmetro PassThru para direcionar Stop-Job
para devolver um objeto de tarefa. A apresentação do objeto de tarefa confirma que o estado da tarefa é Parado.
Para obter mais informações sobre tarefas em segundo plano remotas, consulte about_Remote_Jobs.
Parâmetros
-Confirm
Solicita a sua confirmação antes de executar o cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Filter
Especifica uma tabela hash de condições. Este cmdlet para as tarefas que satisfazem todas as condições. Introduz uma tabela hash na qual as chaves são propriedades da tarefa e os valores são valores da propriedade da tarefa.
Este parâmetro só funciona em tipos de tarefas personalizados, como WorkflowJobs e ScheduledJobs. Não funciona em tarefas padrão em segundo plano, como as criadas com o Start-Job
cmdlet .
Para obter informações sobre o suporte para este parâmetro, veja o tópico de ajuda do tipo de tarefa.
Este parâmetro foi introduzido no Windows PowerShell 3.0.
Type: | Hashtable |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Id
Especifica os IDs das tarefas que este cmdlet para. A predefinição é todas as tarefas na sessão atual.
O ID é um número inteiro que identifica exclusivamente a tarefa na sessão atual. É mais fácil memorizar e escrever do que o ID da instância, mas é exclusivo apenas na sessão atual. Pode escrever um ou mais IDs, separados por vírgulas. Para localizar o ID de uma tarefa, escreva Get-Job
.
Type: | Int32[] |
Position: | 0 |
Default value: | All jobs |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InstanceId
Especifica os IDs de instância das tarefas que este cmdlet para. A predefinição é todas as tarefas.
Um ID de instância é um GUID que identifica exclusivamente a tarefa no computador. Para localizar o ID de instância de uma tarefa, utilize Get-Job
.
Type: | Guid[] |
Position: | 0 |
Default value: | All jobs |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Job
Especifica as tarefas que este cmdlet para. Introduza uma variável que contenha as tarefas ou um comando que obtenha as tarefas. Também pode utilizar um operador de pipeline para submeter tarefas para o Stop-Job
cmdlet . Por predefinição, Stop-Job
elimina todas as tarefas iniciadas na sessão atual.
Type: | Job[] |
Position: | 0 |
Default value: | All jobs |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Especifica nomes amigáveis das tarefas que este cmdlet para. Introduza os nomes dos trabalhos numa lista separada por vírgulas ou utilize carateres universais (*
) para introduzir um padrão de nome de tarefa. Por predefinição, Stop-Job
para todas as tarefas criadas na sessão atual.
Uma vez que o nome amigável não é garantido como exclusivo, utilize os parâmetros WhatIf e Confirm ao parar tarefas por nome.
Type: | String[] |
Position: | 0 |
Default value: | All jobs |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-PassThru
Devolve um objeto que representa o item com o qual está a trabalhar. Por predefinição, este cmdlet não gera quaisquer dados.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-State
Especifica um estado de tarefa. Este cmdlet interrompe apenas as tarefas no estado especificado. Os valores aceitáveis para este parâmetro são:
NotStarted
Running
Completed
Failed
Stopped
Blocked
Suspended
Disconnected
Suspending
Stopping
Para obter mais informações sobre os estados dos trabalhos, veja Enumeração JobState.
Type: | JobState |
Accepted values: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Default value: | All jobs |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Apresenta o que aconteceria mediante a execução do cmdlet. 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
System.Management.Automation.RemotingJob
Pode encaminhar um objeto de tarefa para este cmdlet.
Saídas
None
Por predefinição, este cmdlet não devolve nenhuma saída.
System.Management.Automation.PSRemotingJob
Quando utiliza o parâmetro PassThru , este cmdlet devolve um objeto de tarefa.
Notas
O PowerShell inclui os seguintes aliases para Stop-Job
:
- Todas as plataformas:
spjb