Partilhar via


Resume-Job

Reinicia um trabalho suspenso.

Sintaxe

SessionIdParameterSet (Predefinição)

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

JobParameterSet

Resume-Job
    [-Job] <Job[]>
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

NameParameterSet

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

InstanceIdParameterSet

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

StateParameterSet

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

FilterParameterSet

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

Description

O cmdlet Resume-Job retoma um trabalho de fluxo de trabalho que foi suspenso, como usando o cmdlet Suspend-Job ou a atividade about_Suspend-Workflow . Quando um trabalho de fluxo de trabalho é retomado, o mecanismo de trabalho reconstrói o estado, os metadados e a saída de recursos salvos, como pontos de verificação. O trabalho é reiniciado sem qualquer perda de estado ou dados. O estado do trabalho é alterado de Suspenso para em execução.

Use os parâmetros de Resume-Job para selecionar trabalhos por nome, ID, ID de instância ou canalizar um objeto de trabalho, como um retornado pelo cmdlet Get-Job, para Resume-Job. Você também pode usar um filtro de propriedades para selecionar um trabalho a ser retomado.

Por padrão, Resume-Job retorna imediatamente, mesmo que todos os trabalhos ainda não tenham sido retomados. Para suprimir o prompt de comando até que todos os trabalhos especificados sejam retomados, use o parâmetro Wait.

O cmdlet Resume-Job funciona apenas em tipos de trabalho personalizados, como 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. Se você enviar um trabalho de um tipo não suportado, Resume-Job gerará um erro de encerramento e interromperá a execução.

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 Resume-Job, consulte os tópicos de ajuda para o tipo de trabalho personalizado.

Antes de usar um cmdlet Job em um tipo de trabalho personalizado, importe o módulo que dá suporte ao tipo de trabalho personalizado, usando o cmdlet Import-Module ou obtendo ou usando um cmdlet no módulo.

Este cmdlet foi introduzido no Windows PowerShell 3.0.

Exemplos

Exemplo 1: Retomar um trabalho por ID

Os comandos neste exemplo verificam se o trabalho é um trabalho de fluxo de trabalho suspenso e, em seguida, retomam o trabalho. O primeiro comando usa o cmdlet Get-Job para obter o trabalho. A saída mostra que o trabalho é um trabalho de fluxo de trabalho suspenso. O segundo comando usa o parâmetro Id do cmdlet Resume-Job para retomar o trabalho com um valor de Id de 4.

PS C:\> Get-Job EventJob
Id     Name            PSJobTypeName   State         HasMoreData     Location   Command
--     ----            -------------   -----         -----------     --------   -------
4      EventJob        PSWorkflowJob   Suspended     True            Server01   \\Script\Share\Event.ps1

PS C:\> Resume-Job -Id 4

Exemplo 2: Retomar um trabalho pelo nome

Este comando usa o parâmetro Name para retomar vários trabalhos de fluxo de trabalho no computador local.

PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest*

Exemplo 3: Usar valores de propriedade personalizados

Este comando usa o valor de uma propriedade personalizada para identificar o trabalho de fluxo de trabalho a ser retomado. Ele usa o parâmetro Filter para identificar o trabalho de fluxo de trabalho por sua propriedade CustomID. Ele também usa o parâmetro State para verificar se o trabalho de fluxo de trabalho está suspenso, antes de tentar retomá-lo.

PS C:\> Resume-Job -Filter @{CustomID="T091291"} -State Suspended

Exemplo 4: Retomar todos os trabalhos suspensos num computador remoto

Este comando retoma todos os trabalhos suspensos no computador remoto Srv01.

PS C:\> Invoke-Command -ComputerName Srv01 -ScriptBlock {Get-Job -State Suspended | Resume-Job}

O comando usa o cmdlet Invoke-Command para executar um comando no computador Srv01. O comando remote usa o parâmetro State do cmdlet Get-Job para obter todos os trabalhos suspensos no computador. Um operador de pipeline (|) envia os trabalhos suspensos para o cmdlet Resume-Job, que os retoma.

Exemplo 5: Aguarde até que os trabalhos sejam retomados

Este comando usa o parâmetro Wait para direcionar Resume-Job para retornar somente depois que todos os trabalhos especificados forem retomados. O parâmetro Wait é especialmente útil em scripts que pressupõem que os trabalhos são retomados antes que o script continue.

PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest* -Wait

Exemplo 6: Retomar um fluxo de trabalho que se suspende

Este exemplo de código mostra a atividade Suspend-Workflow em um fluxo de trabalho.

O fluxo de trabalho Test-Suspend no computador Server01. Quando você executa o fluxo de trabalho, o fluxo de trabalho executa a atividade Get-Date e armazena o resultado na variável $a. Em seguida, ele executa a atividade Suspend-Workflow. Em resposta, ele usa um ponto de verificação, suspende o fluxo de trabalho e retorna um objeto de trabalho de fluxo de trabalho. Suspend-Workflow retorna um objeto de trabalho de fluxo de trabalho, mesmo que o fluxo de trabalho não seja executado explicitamente como um trabalho.

Resume-Job retoma o fluxo de trabalho Test-Suspend no Job8. Ele usa o parâmetro Wait para manter o prompt de comando até que o trabalho seja retomado.

O cmdlet Receive-Job obtém os resultados do fluxo de trabalho Test-Suspend. O comando final no fluxo de trabalho retorna um objeto TimeSpan que representa o tempo decorrido entre a data e hora atuais e a data e hora salvas na variável $a antes de o fluxo de trabalho ser suspenso.

#SampleWorkflow
workflow Test-Suspend
{
    $a = Get-Date
    Suspend-Workflow
    (Get-Date)- $a
}

PS C:\> Test-Suspend -PSComputerName Server01
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
8      Job8            PSWorkflowJob   Suspended     True            Server01             Test-Suspend

PS C:\> Resume-Job -Name "Job8" -Wait
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
8      Job8            PSWorkflowJob   Running       True            Server01             Test-Suspend

PS C:\> Receive-Job -Name Job8
        Days              : 0
        Hours             : 0
        Minutes           : 0
        Seconds           : 19
        Milliseconds      : 823
        Ticks             : 198230041
        TotalDays         : 0.000229432917824074
        TotalHours        : 0.00550639002777778
        TotalMinutes      : 0.330383401666667
        TotalSeconds      : 19.8230041
        TotalMilliseconds : 19823.0041
        PSComputerName    : Server01

O cmdlet Resume-Job permite retomar um trabalho de fluxo de trabalho que foi suspenso usando a atividade Suspend-Workflow. Esta atividade suspende um fluxo de trabalho de dentro de um fluxo de trabalho. É válido apenas em fluxos de trabalho.

Para obter informações sobre o Suspend-Workflow, consulte about_Suspend-Workflow](.. /PSWorkflow/about/about_Suspend-Workflow.md).

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 retoma trabalhos que satisfazem todas as condições na tabela de hash. 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

-Id

Especifica uma matriz de IDs para trabalhos que esse cmdlet retoma.

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, execute 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 uma matriz de IDs de instância de trabalhos que esse cmdlet retoma. 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, execute 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 a serem retomados. Insira uma variável que contenha as tarefas ou um comando para obter as tarefas. Você também pode canalizar trabalhos para o cmdlet Resume-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 uma matriz de nomes amigáveis de trabalhos que esse cmdlet retoma. Insira um ou mais nomes de trabalho. Caracteres coringa são permitidos.

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 o estado dos trabalhos a serem retomados. Os valores aceitáveis para este parâmetro são:

  • Não Iniciado
  • Corrida
  • Concluído
  • Falha
  • Parado
  • Bloqueado
  • Suspenso
  • Desconectado
  • Suspensão
  • Parar

Este cmdlet retoma apenas trabalhos no estado Suspenso.

Para obter mais informações sobre estados de trabalho, consulte JobState Enumeration.

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 todos os resultados do trabalho sejam reiniciados. Por padrão, esse cmdlet retorna imediatamente os resultados disponíveis.

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. Se Resume-Job recebe um trabalho de um tipo sem suporte, ele retorna um erro de encerramento.

Saídas

None, System.Management.Automation.Job

Esse cmdlet retorna os trabalhos que tenta retomar, se você usar o parâmetro PassThru. Caso contrário, esse cmdlet não gerará nenhuma saída.

Notas

O Windows PowerShell inclui os seguintes aliases para Resume-Job:

  • rujb

  • Resume-Job só pode retomar trabalhos que estão suspensos. Se você enviar um trabalho em um estado diferente, o Resume-Job executará a operação de retomada no trabalho, mas gerará um aviso para notificá-lo de que o trabalho não pôde ser retomado. 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 à retomada, como um trabalho de fluxo de trabalho (PSWorkflowJob), Resume-Job retornará um erro de encerramento.

  • 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 SQL.

  • Quando você retoma um trabalho, o estado do trabalho muda de Suspenso para em execução. Para localizar os trabalhos em execução, incluindo aqueles que foram retomados por este cmdlet, use o parâmetro State do cmdlet Get-Job para obter trabalhos no estado Running.

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