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 Resume-Job cmdlet reanuda un trabajo de flujo de trabajo suspendido, como mediante el Suspend-Job cmdlet 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 Get-Job cmdlet, a Resume-Job. También puede usar un filtro de propiedad para seleccionar el trabajo que reanudar.

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

El Resume-Job cmdlet 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 Start-Job cmdlet . 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 Resume-Job cmdlet, consulte los temas de ayuda del 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 Import-Module cmdlet o la obtención o el uso de un cmdlet en el módulo.

Este cmdlet se introdujo en Windows PowerShell 3.0.

Ejemplos

Ejemplo 1: Reanudar un trabajo por identificador

Los comandos de este ejemplo comprueban que la tarea es una tarea del flujo de trabajo suspendida y, después, reanudan la tarea. El primer comando usa el Get-Job cmdlet para obtener el trabajo. La salida muestra que el trabajo es un trabajo de flujo de trabajo suspendido. El segundo comando usa el parámetro Id del Resume-Job cmdlet para reanudar el trabajo con un valor 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

Ejemplo 2: Reanudar un trabajo por nombre

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

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

Ejemplo 3: Usar valores de propiedad personalizados

Este comando usa el valor de una propiedad personalizada para identificar la tarea del flujo de trabajo que 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.

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

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

Este comando reanuda todas las tareas suspendidas en el equipo remoto Srv01.

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

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

Ejemplo 5: Esperar a que se reanuden los trabajos

Este comando usa el parámetro Wait para dirigir Resume-Job para devolver solo después de reanudar 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.

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

Ejemplo 6: Reanudar un flujo de trabajo que se suspende

En este ejemplo de código se muestra la Suspend-Workflow actividad en un flujo de trabajo.

Flujo Test-Suspend de trabajo en el equipo Server01. Al ejecutar el flujo de trabajo, el flujo de trabajo ejecuta la Get-Date actividad y almacena el resultado en la $a variable . A continuación, ejecuta la Suspend-Workflow actividad. En respuesta, toma un punto de control, suspende el flujo de trabajo y devuelve un objeto de trabajo de flujo de trabajo. Suspend-Workflow devuelve un objeto de trabajo de flujo de trabajo aunque el flujo de trabajo no se ejecute explícitamente como un trabajo.

Resume-Job reanuda el Test-Suspend flujo de trabajo en Job8. Usa el parámetro Wait para contener el símbolo del sistema hasta que se reanude el trabajo.

El Receive-Job cmdlet obtiene los resultados del Test-Suspend flujo de trabajo. El comando final del flujo de trabajo devuelve un objeto TimeSpan que representa la hora transcurrido entre la fecha y hora actual y la fecha y hora que se guardó en la $a variable antes de que se suspendiera el flujo de trabajo.

#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

El Resume-Job cmdlet permite reanudar un trabajo de flujo de trabajo que se suspendió mediante la Suspend-Workflow actividad . Esta actividad suspende un flujo de trabajo de un flujo de trabajo. Es válida únicamente en flujos de trabajo.

Para obtener información sobre , Suspend-Workflowvea about_Suspend-Workflow](.. /PSWorkflow/about/about_Suspend-Workflow.md).

Parámetros

-Confirm

Le solicita su 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. Especifique una tabla hash donde las claves sean propiedades de una tarea y los valores sean valores de propiedad de la tarea.

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 todas las tareas.

Un identificador de instancia es un GUID que identifica de forma única la tarea 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 las tareas que se van a reanudar. Escriba una variable que contenga las tareas o un comando que obtenga las tareas. También puede canalizar trabajos al Resume-Job cmdlet .

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 más nombres de tareas. Se permite el uso de 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 permitidos para este parámetro son los siguientes:

  • NotStarted
  • En ejecución
  • Completado
  • Errónea
  • Detenido
  • Bloqueado
  • Suspended
  • Escenario desconectado
  • Suspendiendo
  • Deteniéndose

Este cmdlet reanuda solo los trabajos en estado Suspendido .

Para obtener más información sobre los estados de trabajo, vea JobState (enumeración).

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 se ejecutara el cmdlet. 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 resultados.

Notas

Windows PowerShell incluye los siguientes alias para Resume-Job:

  • rujb

  • 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 parámetro común WarningAction 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 una tarea suspendida pueden variar según el tipo de tarea. Por ejemplo, las tareas del flujo de trabajo suspendidas se guardan en un almacén de archivos sin formato de manera predeterminada, pero también pueden guardarse en una base de datos SQL.

  • Cuando reanuda 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 Get-Job cmdlet para obtener trabajos en estado En ejecución .

  • Algunos tipos de tarea tienen opciones o propiedades que impiden que Windows PowerShell suspenda la tarea. Si se intenta suspender el trabajo, compruebe que las opciones y propiedades del trabajo permiten suspender.