Compartir a través de


Resume-Job

Reinicia un trabajo suspendido.

Sintaxis

Resume-Job
      [-Wait]
      [-Id] <Int32[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resume-Job
      [-Job] <Job[]>
      [-Wait]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resume-Job
      [-Wait]
      [-Name] <String[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resume-Job
      [-Wait]
      [-InstanceId] <Guid[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resume-Job
      [-Wait]
      [-State] <JobState>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resume-Job
      [-Wait]
      [-Filter] <Hashtable>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

El cmdlet Resume-Job reanuda un trabajo de flujo de trabajo suspendido, como mediante el cmdlet Suspend-Job o la actividad about_Suspend-Workflow. Cuando se reanuda un trabajo de flujo de trabajo, el motor de trabajos reconstruye el estado, los metadatos y la salida de los recursos guardados, como los puntos de control. El trabajo se reinicia sin pérdida de estado o datos. El estado del trabajo se cambia de suspendido a En ejecución.

Use los parámetros de Resume-Job para seleccionar trabajos por nombre, identificador, identificador de instancia o canalización de un objeto de trabajo, como uno devuelto por el cmdlet Get-Job, para Resume-Job. También puede usar un filtro de propiedades para seleccionar un trabajo que se va a reanudar.

De forma predeterminada, resume-job devuelve inmediatamente, aunque es posible que no se reanuden todos los trabajos. Para suprimir el símbolo del sistema hasta que se reanudan todos los trabajos especificados, use el parámetro Wait .

El cmdlet Resume-Job solo funciona en tipos de trabajo personalizados, como trabajos de flujo de trabajo. No funciona en trabajos en segundo plano estándar, como los que se inician mediante el cmdlet Start-Job. Si envía un trabajo de un tipo no admitido, Resume-Job genera un error de terminación y deja de ejecutarse.

Para identificar un trabajo de flujo de trabajo, busque un valor de PSWorkflowJob en la propiedad PSJobTypeName del trabajo. Para determinar si un tipo de trabajo personalizado determinado admite el cmdlet Resume-Job, consulte los temas de ayuda para el tipo de trabajo personalizado.

Antes de usar un cmdlet Job en un tipo de trabajo personalizado, importe el módulo que admite el tipo de trabajo personalizado, ya sea mediante el cmdlet Import-Module o obteniendo o usando un cmdlet en el módulo.

Este cmdlet se introdujo en Windows PowerShell 3.0.

Ejemplos

Ejemplo 1: Reanudar un trabajo por identificador

The first command uses the **Get-Job** cmdlet to get the job. The output shows that the job is a suspended workflow job.
PS C:\> Get-Job EventJob
Id     Name            PSJobTypeName   State         HasMoreData     Location   Command
--     ----            -------------   -----         -----------     --------   -------
4      EventJob        PSWorkflowJob   Suspended     True            Server01   \\Script\Share\Event.ps1

The second command uses the *Id* parameter of the **Resume-Job** cmdlet to resume the job with an *Id* value of 4.
PS C:\> Resume-Job -Id 4

Los comandos de este ejemplo comprueban que el trabajo es un trabajo de flujo de trabajo suspendido y, a continuación, reanudan el trabajo.

Ejemplo 2: Reanudar un trabajo por nombre

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

Este comando usa el parámetro Name para reanudar varios trabajos de flujo de trabajo en el equipo local.

Ejemplo 3: Usar valores de propiedad personalizados

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

Este comando usa el valor de una propiedad personalizada para identificar el trabajo de flujo de trabajo que se va a reanudar. Usa el parámetro Filter para identificar el trabajo de flujo de trabajo por su propiedad CustomID. También usa el parámetro State para comprobar que el trabajo de flujo de trabajo está suspendido, antes de intentar reanudarlo.

Ejemplo 4: Reanudar todos los trabajos suspendidos en un equipo remoto

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

Este comando reanuda todos los trabajos suspendidos en el equipo remoto Srv01.

El comando usa el cmdlet Invoke-Command para ejecutar un comando en el equipo Srv01. El comando remoto usa el parámetro State del cmdlet Get-Job para obtener todos los trabajos suspendidos en el equipo. Un operador de canalización (|) envía los trabajos suspendidos al cmdlet Resume-Job, que los reanuda.

Ejemplo 5: Esperar a que se reanuden los trabajos

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

Este comando usa el parámetro wait para dirigir resume-job para devolver solo después de que se reanuden todos los trabajos especificados. El parámetro Wait es especialmente útil en los scripts que asumen que los trabajos se reanudan antes de que continúe el script.

Ejemplo 6: Reanudar un flujo de trabajo que se suspende

This code sample shows the **Suspend-Workflow** activity in a workflow.
#SampleWorkflow
Workflow Test-Suspend
{
    $a = Get-Date
    Suspend-Workflow
    (Get-Date)- $a
}

The following command runs the Test-Suspend workflow on the Server01 computer.When you run the workflow, the workflow runs the Get-Date activity and stores the result in the $a variable. Then it runs the Suspend-Workflow activity. In response, it takes a checkpoint, suspends the workflow, and returns a workflow job object.  Suspend-Workflow returns a workflow job object even if the workflow is not explicitly run as a job.
PS C:\> Test-Suspend -PSComputerName Server01
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
8      Job8            PSWorkflowJob   Suspended     True            Server01             Test-Suspend

The following command resumes the Test-Suspend workflow in Job8. It uses the *Wait* parameter to hold the command prompt until the job is resumed.
PS C:\> Resume-Job -Name "Job8" -Wait
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command

--     ----            -------------   -----         -----------     --------             -------

8      Job8            PSWorkflowJob   Running       True            Server01             Test-Suspend

This command uses the **Receive-Job** cmdlet to get the results of the Test-Suspend workflow. The final command in the workflow returns a **TimeSpan** object that represents the elapsed time between the current date and time and the date and time that was saved in the $a variable before the workflow was suspended.
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

El cmdlet Resume-Job permite reanudar un trabajo de flujo de trabajo que se suspendió mediante la actividad Suspend-Workflow de . Esta actividad suspende un flujo de trabajo desde un flujo de trabajo. Solo es válido en flujos de trabajo.

Para obtener información sobre Suspend-Workflow, consulte about_Suspend-Workflow.

Parámetros

-Confirm

Le pide confirmación antes de ejecutar el cmdlet.

Tipo:SwitchParameter
Alias:cf
Posición:Named
Valor predeterminado:False
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Filter

Especifica una tabla hash de condiciones. Este cmdlet reanuda los trabajos que cumplen todas las condiciones de la tabla hash. Escriba una tabla hash donde las claves son propiedades de trabajo y los valores son valores de propiedad de trabajo.

Tipo:Hashtable
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-Id

Especifica una matriz de identificadores para los trabajos que reanuda este cmdlet.

El identificador es un entero que identifica de forma única el trabajo en la sesión actual. Es más fácil recordar y escribir que el identificador de instancia, pero solo es único en la sesión actual. Puede escribir uno o varios identificadores, separados por comas. Para buscar el identificador de un trabajo, ejecute Get-Job.

Tipo:Int32[]
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-InstanceId

Especifica una matriz de identificadores de instancia de trabajos que reanuda este cmdlet. El valor predeterminado es todos los trabajos.

Un identificador de instancia es un GUID que identifica de forma única el trabajo en el equipo. Para buscar el identificador de instancia de un trabajo, ejecute Get-Job.

Tipo:Guid[]
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-Job

Especifica los trabajos que se van a reanudar. Escriba una variable que contenga los trabajos o un comando que obtenga los trabajos. También puede canalizar trabajos al cmdlet Resume-Job.

Tipo:Job[]
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-Name

Especifica una matriz de nombres descriptivos de trabajos que reanuda este cmdlet. Escriba uno o varios nombres de trabajo. Se permiten caracteres comodín.

Tipo:String[]
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-State

Especifica el estado de los trabajos que se van a reanudar. Los valores aceptables para este parámetro son:

  • NotStarted
  • Corriente
  • Completado
  • Fracasado
  • Detenido
  • Bloqueado
  • Suspendido
  • Desconectado
  • Suspender
  • Parar

Este cmdlet reanuda solo los trabajos en el estado suspendido.

Para obtener más información sobre los estados de trabajo, consulte enumeración JobState en MSDN Library.

Tipo:JobState
Valores aceptados:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-Wait

Indica que este cmdlet suprime el símbolo del sistema hasta que se reinicien todos los resultados del trabajo. De forma predeterminada, este cmdlet devuelve inmediatamente los resultados disponibles.

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-WhatIf

Muestra lo que sucedería si el cmdlet se ejecuta. El cmdlet no se ejecuta.

Tipo:SwitchParameter
Alias:wi
Posición:Named
Valor predeterminado:False
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

Entradas

Job

Puede canalizar todos los tipos de trabajos a este cmdlet. Si resume-job obtiene un trabajo de un tipo no admitido, devuelve un error de terminación.

Salidas

None, System.Management.Automation.Job

Este cmdlet devuelve los trabajos que intenta reanudar, si usa el parámetro PassThru. De lo contrario, este cmdlet no genera ninguna salida.

Notas

  • resume-job solo puede reanudar trabajos suspendidos. Si envía un trabajo en un estado diferente, Resume-Job ejecuta la operación de reanudación en el trabajo, pero genera una advertencia para notificarle que no se pudo reanudar el trabajo. Para suprimir la advertencia, use el WarningAction parámetro común con un valor de SilentlyContinue.
  • Si un trabajo no es de un tipo que admite la reanudación, como un trabajo de flujo de trabajo (PSWorkflowJob), Resume-Job devuelve un error de terminación.
  • El mecanismo y la ubicación para guardar un trabajo suspendido pueden variar en función del tipo de trabajo. Por ejemplo, los trabajos de flujo de trabajo suspendidos se guardan en un almacén de archivos planos de forma predeterminada, pero también se pueden guardar en una base de datos SQL.
  • Al reanudar un trabajo, el estado del trabajo cambia de suspendido a En ejecución. Para buscar los trabajos que se ejecutan, incluidos los que reanudó este cmdlet, use el parámetro state del cmdlet get-job para obtener trabajos en el estado Running.
  • Algunos tipos de trabajo tienen opciones o propiedades que impiden que Windows PowerShell suspenda el trabajo. Si se intenta suspender el trabajo, compruebe que las opciones y propiedades del trabajo permiten suspender.