Suspend-Job
Detiene temporalmente los trabajos de flujo de trabajo.
Sintaxis
SessionIdParameterSet (valor predeterminado)
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
El cmdlet Suspend-Job suspende los trabajos de flujo de trabajo. Suspender significa interrumpir o pausar temporalmente un trabajo de flujo de trabajo. Este cmdlet permite a los usuarios que ejecutan flujos de trabajo suspender el flujo de trabajo. Complementa la actividad Suspend-Workflowhttps://go.microsoft.com/fwlink/?LinkId=267141, que es un comando del flujo de trabajo que suspende el flujo de trabajo.
El cmdlet Suspend-Job solo funciona en trabajos de flujo de trabajo. No funciona en trabajos en segundo plano estándar, como los que se inician mediante el cmdlet Start-Job.
Para identificar un trabajo de flujo de trabajo, busque un valor de PSWorkflowJob en la PSJobTypeName propiedad del trabajo. Para determinar si un tipo de trabajo personalizado determinado admite el cmdlet Suspend-Job, consulte los temas de ayuda para el tipo de trabajo personalizado.
Al suspender un trabajo de flujo de trabajo, el trabajo de flujo de trabajo se ejecuta en el siguiente punto de control, suspende y devuelve inmediatamente un objeto de trabajo de flujo de trabajo.
Para esperar a que se complete la suspensión antes de obtener el trabajo, use el parámetro Wait de Suspend-Job o el cmdlet Wait-Job.
Cuando se suspende el trabajo de flujo de trabajo, el valor de la propiedad state
Suspender correctamente se basa en puntos de control. El estado actual del trabajo, los metadatos y la salida se guardan en el punto de control para que el trabajo de flujo de trabajo se pueda reanudar sin pérdida de estado o datos. Si el trabajo de flujo de trabajo no tiene puntos de control, no se puede suspender correctamente. Para agregar puntos de control a un flujo de trabajo que está ejecutando, use el parámetro común de flujo de trabajo PSPersist. Puede usar el parámetro Force para suspender cualquier trabajo de flujo de trabajo inmediatamente y suspender un trabajo de flujo de trabajo que no tenga puntos de control, pero la acción podría provocar la pérdida de estado y datos.
Antes de usar un cmdlet Job en un tipo de trabajo personalizado, como un trabajo de flujo de trabajo (PSWorkflowJob) importe el módulo que admite el tipo de trabajo personalizado, ya sea mediante el cmdlet Import-Module o mediante o mediante un cmdlet en el módulo.
Este cmdlet se introdujo en Windows PowerShell 3.0.
Ejemplos
Ejemplo 1: Suspender un trabajo de flujo de trabajo por nombre
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
En este ejemplo se muestra cómo suspender un trabajo de flujo de trabajo.
Ejemplo 2: Suspender y reanudar un trabajo de flujo de trabajo
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
En este ejemplo se muestra cómo suspender y reanudar un trabajo de flujo de trabajo.
Ejemplo 3: Suspender un trabajo de flujo de trabajo en un equipo remoto
PS C:\> Invoke-Command -ComputerName Srv01 -Scriptblock {Suspend-Job -Filter @{CustomID="031589"}
Este comando usa el cmdlet Invoke-Command para suspender un trabajo de flujo de trabajo en el equipo remoto Srv01. El valor del parámetro Filter es una tabla hash que especifica un valor CustomID. Este CustomID es metadatos de trabajo (PSPrivateMetadata).
Ejemplo 4: Esperar a que el trabajo de flujo de trabajo se suspenda
PS C:\> Suspend-Job VersionCheck -Wait
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
5 VersionCheck PSWorkflowJob Suspended True localhost LogWorkflow
Este comando suspende el trabajo de flujo de trabajo VersionCheck. El comando usa el parámetro Wait para esperar hasta que se suspenda el trabajo de flujo de trabajo. Cuando el trabajo de flujo de trabajo se ejecuta en el siguiente punto de control y se suspende, el comando finaliza y devuelve el objeto de trabajo.
Ejemplo 5: Forzar la suspensión de un trabajo de flujo de trabajo
PS C:\> Suspend-Job Maintenance -Force
Este comando suspende el trabajo de flujo de trabajo de mantenimiento forzosamente. El trabajo mantenimiento no tiene puntos de control. No se puede suspender correctamente y es posible que no se reanude correctamente.
Parámetros
-Confirm
Le pide confirmación antes de ejecutar el cmdlet.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | cf |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Filter
Especifica una tabla hash de condiciones. Este cmdlet suspende los trabajos que cumplen todas las condiciones. Especifique una tabla hash donde las claves sean propiedades de una tarea y los valores sean valores de propiedad de la tarea.
Propiedades de parámetro
| Tipo: | Hashtable |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
FilterParameterSet
| Posición: | 0 |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-Force
Suspende el trabajo de flujo de trabajo inmediatamente. Esta acción podría provocar una pérdida de estado y datos.
De forma predeterminada, Suspend-Job permite que el trabajo de flujo de trabajo se ejecute hasta el siguiente punto de control y, a continuación, lo suspende. También puede usar este parámetro para suspender trabajos de flujo de trabajo que no tienen puntos de control.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | F |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Id
Especifica los identificadores de los trabajos que suspende este cmdlet.
El identificador es un entero que identifica de forma única la tarea 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, use el cmdlet Get-Job.
Propiedades de parámetro
| Tipo: | Int32[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
SessionIdParameterSet
| Posición: | 0 |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-InstanceId
Especifica los identificadores de instancia de los trabajos que suspende 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, use Get-Job.
Propiedades de parámetro
| Tipo: | Guid[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
InstanceIdParameterSet
| Posición: | 0 |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-Job
Especifica los trabajos de flujo de trabajo que detiene este cmdlet. Escriba una variable que contenga los trabajos de flujo de trabajo o un comando que obtiene los trabajos de flujo de trabajo. También puede canalizar trabajos de flujo de trabajo al cmdlet Suspend-Job.
Propiedades de parámetro
| Tipo: | Job[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
JobParameterSet
| Posición: | 0 |
| Obligatorio: | True |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-Name
Especifica los nombres descriptivos de los trabajos que suspende este cmdlet. Escriba uno o varios nombres de trabajo de flujo de trabajo. Se admiten caracteres comodín.
Propiedades de parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
NameParameterSet
| Posición: | 0 |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-State
Especifica un estado de trabajo. Este cmdlet detiene solo los trabajos en el estado especificado. Los valores aceptables para este parámetro son:
- NotStarted
- Correr
- Completado
- Fracasado
- Detenido
- Bloqueado
- Suspendido
- Desconectado
- Suspendiendo
- Parar
Para obtener más información sobre los estados de trabajo, consulte enumeración JobState en MSDN Library.
Propiedades de parámetro
| Tipo: | JobState |
| Valor predeterminado: | None |
| Valores aceptados: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
StateParameterSet
| Posición: | 0 |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-Wait
Indica que este cmdlet suprime el símbolo del sistema hasta que el trabajo de flujo de trabajo esté en estado suspendido. De forma predeterminada, Suspend-Job devuelve inmediatamente, incluso si el trabajo de flujo de trabajo aún no está en estado suspendido.
El parámetro wait
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-WhatIf
Muestra lo que sucedería si el cmdlet se ejecuta. El cmdlet no se ejecuta.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | Wi |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
Job
Puede canalizar todos los tipos de trabajos a este cmdlet. Sin embargo, si Suspend-Job obtiene un trabajo de un tipo no admitido, devuelve un error de terminación.
Salidas
Job
Este cmdlet devuelve los trabajos que suspendió.
Notas
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.
Si envía un trabajo de flujo de trabajo que no está en estado En ejecución, suspende-trabajo muestra un mensaje de advertencia. 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 suspensión, Suspend-Job devuelve un error de terminación.
Para buscar los trabajos de flujo de trabajo suspendidos, incluidos los suspendidos por este cmdlet, use el parámetro State
del cmdlet Get-Job para obtener trabajos de flujo de trabajo en estado Suspendido.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.