Partilhar via


Suspend-Job

Interrompe temporariamente os trabalhos de fluxo de trabalho.

Sintaxe

SessionIdParameterSet (Predefinição)

Suspend-Job
    [-Id] <Int32[]>
    [-Force]
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

JobParameterSet

Suspend-Job
    [-Job] <Job[]>
    [-Force]
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

FilterParameterSet

Suspend-Job
    [-Filter] <Hashtable>
    [-Force]
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

StateParameterSet

Suspend-Job
    [-State] <JobState>
    [-Force]
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

InstanceIdParameterSet

Suspend-Job
    [-InstanceId] <Guid[]>
    [-Force]
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

NameParameterSet

Suspend-Job
    [-Name] <String[]>
    [-Force]
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

O cmdlet Suspend-Job suspende trabalhos de fluxo de trabalho. Suspender significa interromper ou pausar temporariamente um trabalho de fluxo de trabalho. Este cmdlet permite que os usuários que estão executando fluxos de trabalho suspendam o fluxo de trabalho. Ele complementa a atividade dehttps://go.microsoft.com/fwlink/?LinkId=267141 Suspend-Workflow, que é um comando no fluxo de trabalho que suspende o fluxo de trabalho.

O cmdlet Suspend-Job funciona apenas em trabalhos de fluxo de trabalho. Ele não funciona em trabalhos em segundo plano padrão, como aqueles que são iniciados usando o cmdlet Start-Job.

Para identificar um trabalho de fluxo de trabalho, procure um valor de PSWorkflowJob na propriedade PSJobTypeName do trabalho. Para determinar se um determinado tipo de trabalho personalizado oferece suporte ao cmdlet Suspend-Job, consulte os tópicos de ajuda para o tipo de trabalho personalizado.

Quando você suspende um trabalho de fluxo de trabalho, o trabalho de fluxo de trabalho é executado até o próximo ponto de verificação, suspende e retorna imediatamente um objeto de trabalho de fluxo de trabalho. Para aguardar a conclusão da suspensão antes de obter o trabalho, use o parâmetro Wait de Suspend-Job ou o cmdlet Wait-Job. Quando o trabalho de fluxo de trabalho é suspenso, o valor da propriedade State do trabalho é Suspended.

A suspensão depende corretamente de pontos de verificação. O estado atual do trabalho, os metadados e a saída são salvos no ponto de verificação para que o trabalho de fluxo de trabalho possa ser retomado sem perda de estado ou dados. Se o trabalho de fluxo de trabalho não tiver pontos de verificação, ele não poderá ser suspenso corretamente. Para adicionar pontos de verificação a um fluxo de trabalho que você está executando, use o PSPersist parâmetro comum do fluxo de trabalho. Você pode usar o parâmetro Force para suspender qualquer trabalho de fluxo de trabalho imediatamente e suspender um trabalho de fluxo de trabalho que não tenha pontos de verificação, mas a ação pode causar perda de estado e dados.

Antes de usar um cmdlet Job em um tipo de trabalho personalizado, como um trabalho de fluxo de trabalho (PSWorkflowJob) importe o módulo que suporta o tipo de trabalho personalizado, usando o cmdlet Import-Module ou usando ou usando um cmdlet no módulo.

Este cmdlet foi introduzido no Windows PowerShell 3.0.

Exemplos

Exemplo 1: Suspender um trabalho de fluxo de trabalho por nome

The first command creates the Get-SystemLog workflow. The workflow uses the CheckPoint-Workflow activity to define a checkpoint in the workflow.
#Sample WorkflowWorkflow Get-SystemLog
{
    $Events = Get-WinEvent -LogName System
    CheckPoint-Workflow
    InlineScript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}

The second command uses the *AsJob* parameter that is common to all workflows to run the Get-SystemLog workflow as a background job. The command uses the *JobName* workflow common parameter to specify a friendly name for the workflow job.
PS C:\> Get-SystemLog -AsJob -JobName "Get-SystemLogJob"

The third command uses the **Get-Job** cmdlet to get the Get-SystemLogJob workflow job. The output shows that the value of the **PSJobTypeName** property is PSWorkflowJob.
PS C:\> Get-Job -Name Get-SystemLogJob
Id     Name              PSJobTypeName   State       HasMoreData     Location   Command
--     ----              -------------   -----       -----------     --------   -------
4      Get-SystemLogJob  PSWorkflowJob   Running     True            localhost   Get-SystemLog

The fourth command uses the **Suspend-Job** cmdlet to suspend the Get-SystemLogJob job. The job runs to the checkpoint and then suspends.
PS C:\> Suspend-Job -Name Get-SystemLogJob
Id     Name              PSJobTypeName   State       HasMoreData     Location   Command
--     ----              -------------   -----       -----------     --------   -------
4      Get-SystemLogJob  PSWorkflowJob   Suspended   True            localhost   Get-SystemLog

Este exemplo mostra como suspender um trabalho de fluxo de trabalho.

Exemplo 2: Suspender e retomar um trabalho de fluxo de trabalho

The first command suspends the LogWorkflowJob job.The command returns immediately. The output shows that the workflow job is still running, even though it is being suspended.
PS C:\> Suspend-Job -Name LogWorkflowJob
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Running       True            localhost            LogWorkflow

The second command uses the **Get-Job** cmdlet to get the LogWorkflowJob job. The output shows that the workflow job suspended successfully.
PS C:\> Get-Job -Name LogWorkflowJob
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Suspended     True            localhost            LogWorkflow

The third command uses the **Get-Job** cmdlet to get the LogWorkflowJob job and the Resume-Job cmdlet to resume it. The output shows that the workflow job resumed successfully and is now running.
PS C:\> Get-Job -Name LogWorkflowJob | Resume-Job
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Running       True            localhost            LogWorkflow

Este exemplo mostra como suspender e retomar um trabalho de fluxo de trabalho.

Exemplo 3: Suspender um trabalho de fluxo de trabalho em um computador remoto

PS C:\> Invoke-Command -ComputerName Srv01 -Scriptblock {Suspend-Job -Filter @{CustomID="031589"}

Este comando usa o cmdlet Invoke-Command para suspender um trabalho de fluxo de trabalho no computador remoto Srv01. O valor do parâmetro Filter é uma tabela de hash que especifica um valor CustomID. Este CustomID é metadados de trabalho (PSPrivateMetadata).

Exemplo 4: Aguarde a suspensão do trabalho de fluxo de trabalho

PS C:\> Suspend-Job VersionCheck -Wait
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
 5     VersionCheck  PSWorkflowJob      Suspended     True            localhost            LogWorkflow

Este comando suspende o trabalho de fluxo de trabalho VersionCheck. O comando usa o parâmetro Wait para aguardar até que o trabalho de fluxo de trabalho seja suspenso. Quando o trabalho de fluxo de trabalho é executado para o próximo ponto de verificação e é suspenso, o comando termina e retorna o objeto de trabalho.

Exemplo 5: Forçar a suspensão de um trabalho de fluxo de trabalho

PS C:\> Suspend-Job Maintenance -Force

Este comando suspende o trabalho de fluxo de trabalho de Manutenção à força. O trabalho de manutenção não tem pontos de verificação. Ele não pode ser suspenso corretamente e pode não ser retomado corretamente.

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 suspende trabalhos que satisfaçam 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.

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

Suspende o trabalho de fluxo de trabalho imediatamente. Esta ação pode causar uma perda de estado e dados.

Por padrão, Suspend-Job permite que o trabalho de fluxo de trabalho seja executado até o próximo ponto de verificação e, em seguida, o suspende. Você também pode usar esse parâmetro para suspender trabalhos de fluxo de trabalho que não têm pontos de verificação.

Propriedades dos parâmetros

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

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

-Id

Especifica as IDs dos trabalhos que este cmdlet suspende.

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 localizar a ID de um trabalho, use o cmdlet Get-Job.

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

Especifica as IDs de instância dos trabalhos que este cmdlet suspende. O padrão é todas as tarefas.

Um ID de instância é um GUID que identifica exclusivamente o trabalho no computador. Para localizar a ID de instância 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 de fluxo de trabalho interrompidos por esse cmdlet. Insira uma variável que contenha os trabalhos de fluxo de trabalho ou um comando que obtenha os trabalhos de fluxo de trabalho. Você também pode canalizar trabalhos de fluxo de trabalho para o cmdlet Suspend-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

Especifica nomes amigáveis de trabalhos que este cmdlet suspende. Insira um ou mais nomes de trabalho de fluxo de trabalho. Caracteres curinga são suportados.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
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

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

Suspend-Job suspende apenas trabalhos de fluxo de trabalho no estado Running.

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:None
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

-Wait

Indica que esse cmdlet suprime o prompt de comando até que o trabalho de fluxo de trabalho esteja no estado suspenso. Por padrão, Suspend-Job retorna imediatamente, mesmo que o trabalho de fluxo de trabalho ainda não esteja no estado suspenso.

O parâmetro Wait é equivalente a canalizar um comando Suspend-Job para o cmdlet Wait-Job.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:None
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

-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

Job

Você pode canalizar todos os tipos de trabalhos para este cmdlet. No entanto, se Suspend-Job receber um trabalho de um tipo sem suporte, ele retornará um erro de encerramento.

Saídas

Job

Este cmdlet retorna os trabalhos que suspendeu.

Notas

  • O mecanismo e o local para salvar um trabalho suspenso podem variar dependendo do tipo de trabalho. Por exemplo, trabalhos de fluxo de trabalho suspensos são salvos em um armazenamento de arquivos simples por padrão, mas também podem ser salvos em um banco de dados.

  • Se você enviar um trabalho de fluxo de trabalho que não esteja no estado em Execução, Suspend-Job exibirá uma mensagem de aviso. Para suprimir o aviso, use o WarningAction parâmetro comum com um valor de SilentlyContinue.

    Se um trabalho não for de um tipo que ofereça suporte à suspensão, Suspend-Job retornará um erro de encerramento.

  • Para localizar os trabalhos de fluxo de trabalho suspensos, incluindo aqueles que foram suspensos por este cmdlet, use o parâmetro State do cmdlet Get-Job para obter trabalhos de fluxo de trabalho no estado Suspenso.

  • Alguns tipos de trabalho têm opções ou propriedades que impedem o Windows PowerShell de suspender o trabalho. Se as tentativas de suspensão do trabalho falharem, verifique se as opções e propriedades do trabalho permitem a suspensão.