Resume-Job

Reinicia un trabajo suspendido.

Syntax

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. Se cambia el estado de la tarea de Suspended a Running.

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, a Resume-Job. También puede usar un filtro de propiedad para seleccionar el trabajo que reanudar.

De forma predeterminada, Resume-Job se devuelve inmediatamente, aunque todavía puede que no se hayan reanudado todas las tareas. Para suprimir el símbolo del sistema hasta que se reanuden todas las tareas especificadas, use el parámetro Wait.

El cmdlet Resume-Job solo funciona en tipos de tarea personalizados, como las tareas del 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 una tarea de un tipo incompatible, Resume-Job genera un error de terminación y deja de ejecutarse.

Para identificar una tarea del flujo de trabajo, busque un valor de PSWorkflowJob en la propiedad PSJobTypeName de la tarea. 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 la tarea es una tarea del flujo de trabajo suspendida y, después, reanudan la tarea.

Ejemplo 2: Reanudar un trabajo por nombre

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

Este comando usa el parámetro Name para reanudar varias tareas del flujo de trabajo en el equipo local.

Ejemplo 3: Uso de valores de propiedad personalizados

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

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 la tarea del flujo de trabajo por su propiedad CustomID. También usa el parámetro State para comprobar que la tarea del flujo de trabajo está suspendida antes de intentar reanudarla.

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 todas las tareas suspendidas 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 las tareas suspendidas al cmdlet Resume-Job, que las 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 resulta especialmente útil en scripts que asumen que las tareas se reanudan antes de que el script continúe.

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 . Esta actividad suspende un flujo de trabajo de un flujo de trabajo. Es válida únicamente en flujos de trabajo.

Para información sobre Suspend-Workflow, vea about_Suspend-Workflow.

Parámetros

-Confirm

Le solicita su confirmación antes de ejecutar el cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Hashtable
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:Int32[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:Guid[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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 las tareas al cmdlet Resume-Job.

Type:Job[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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
  • Completed
  • Con error
  • 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) en MSDN Library.

Type:JobState
Accepted values:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Wait

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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

  • Resume-Job solo puede reanudar trabajos suspendidos. Si envía una tarea con otro estado, Resume-Job ejecuta la operación de reanudación en la tarea, pero genera una advertencia para informarle de que no se pudo reanudar la tarea. 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.
  • Al reanudar una tarea, cambia el estado de la tarea de Suspended a Running. 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 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.