Partager via


Suspend-Job

Arrête temporairement les tâches de workflow.

Syntax

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

Description

L’applet Suspend-Job de commande suspend les travaux de flux de travail. Suspendre les moyens d’interrompre ou de suspendre temporairement un travail de flux de travail. Cette applet de commande permet aux utilisateurs qui exécutent des workflows de suspendre le workflow. Il complète l’activité Suspend-Workflowhttps://go.microsoft.com/fwlink/?LinkId=267141 , qui est une commande dans le flux de travail qui suspend le flux de travail.

L’applet Suspend-Job de commande fonctionne uniquement sur les travaux de flux de travail. Elle ne fonctionne pas sur les travaux en arrière-plan standard, tels que ceux démarrés à l’aide de l’applet Start-Job de commande.

Pour identifier un travail de flux de travail, recherchez une valeur de PSWorkflowJob dans la propriété PSJobTypeName du travail. Pour déterminer si un type de travail personnalisé particulier prend en charge l’applet Suspend-Job de commande, consultez les rubriques d’aide pour le type de travail personnalisé.

Quand vous suspendez une tâche de workflow, la tâche de workflow s'exécute jusqu'au prochain point de contrôle, se met en suspens et retourne immédiatement un objet de tâche de workflow. Pour attendre la fin de la suspension avant d’obtenir le travail, utilisez le paramètre Wait de ou l’applet Wait-Job de Suspend-Job commande. Lorsque le travail de flux de travail est suspendu, la valeur de la propriété État du travail est suspendue.

Une mise en suspens correcte s'appuie sur les points de contrôle. L’état actuel du travail, les métadonnées et la sortie sont enregistrés dans le point de case activée afin que le travail de flux de travail puisse être repris sans perte d’état ou de données. Si le travail de flux de travail n’a pas case activée points, il ne peut pas être suspendu correctement. Pour ajouter case activée points à un flux de travail que vous exécutez, utilisez le paramètre commun de flux de travail PSPersist. Vous pouvez utiliser le paramètre Force pour suspendre immédiatement n’importe quel travail de flux de travail et suspendre un travail de flux de travail qui n’a pas case activée points, mais l’action peut entraîner une perte d’état et de données.

Avant d’utiliser une applet de commande Job sur un type de travail personnalisé, par exemple un travail de flux de travail (PSWorkflowJob) importez le module qui prend en charge le type de travail personnalisé, soit à l’aide de l’applet de commande, soit à l’aide de l’applet Import-Module de commande, soit à l’aide d’une applet de commande dans le module.

Cette applet de commande a été introduite dans Windows PowerShell 3.0.

Exemples

Exemple 1 : Suspendre un travail de flux de travail par nom

Cet exemple montre comment suspendre une tâche de workflow.

La première commande crée le Get-SystemLog flux de travail. Le flux de travail utilise l’activité CheckPoint-Workflow pour définir un point de case activée dans le flux de travail.

La deuxième commande utilise le paramètre AsJob commun à tous les flux de travail pour exécuter le Get-SystemLog flux de travail en tant que travail en arrière-plan. La commande utilise le paramètre commun du flux de travail JobName pour spécifier un nom convivial pour le travail de flux de travail.

La troisième commande utilise l’applet Get-Job de commande pour obtenir le travail de Get-SystemLogJob flux de travail. La sortie indique que la valeur de la propriété PSJobTypeName est PSWorkflowJob.

La quatrième commande utilise l’applet Suspend-Job de commande pour suspendre le Get-SystemLogJob travail. Le travail s’exécute sur le point de case activée, puis s’interrompt.

#Sample WorkflowWorkflow Get-SystemLog
{
    $Events = Get-WinEvent -LogName System
    CheckPoint-Workflow
    InlineScript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}

PS C:\> Get-SystemLog -AsJob -JobName "Get-SystemLogJob"

PS C:\> Get-Job -Name Get-SystemLogJob
Id     Name              PSJobTypeName   State       HasMoreData     Location   Command
--     ----              -------------   -----       -----------     --------   -------
4      Get-SystemLogJob  PSWorkflowJob   Running     True            localhost   Get-SystemLog

PS C:\> Suspend-Job -Name Get-SystemLogJob
Id     Name              PSJobTypeName   State       HasMoreData     Location   Command
--     ----              -------------   -----       -----------     --------   -------
4      Get-SystemLogJob  PSWorkflowJob   Suspended   True            localhost   Get-SystemLog

Exemple 2 : Suspendre et reprendre un travail de flux de travail

Cet exemple montre comment suspendre et reprendre une tâche de workflow.

La première commande suspend le travail LogWorkflowJob. La commande retourne immédiatement. La sortie indique que le travail de flux de travail est toujours en cours d’exécution, même s’il est suspendu.

La deuxième commande utilise l’applet Get-Job de commande pour obtenir le travail LogWorkflowJob. La sortie indique que le travail de flux de travail a été suspendu avec succès.

La troisième commande utilise l’applet Get-Job de commande pour obtenir le travail LogWorkflowJob et l’applet de commande pour la Resume-Job reprendre. La sortie indique que le travail de flux de travail a repris correctement et est maintenant en cours d’exécution.

PS C:\> Suspend-Job -Name LogWorkflowJob
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Running       True            localhost            LogWorkflow

PS C:\> Get-Job -Name LogWorkflowJob
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Suspended     True            localhost            LogWorkflow

PS C:\> Get-Job -Name LogWorkflowJob | Resume-Job
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Running       True            localhost            LogWorkflow

Exemple 3 : Suspendre un travail de flux de travail sur un ordinateur distant

PS C:\> Invoke-Command -ComputerName Srv01 -Scriptblock {Suspend-Job -Filter @{CustomID="031589"}

Cette commande utilise l’applet Invoke-Command de commande pour suspendre un travail de flux de travail sur l’ordinateur distant Srv01. La valeur du paramètre Filter est une table de hachage qui spécifie une valeur CustomID. Ce CustomID est des métadonnées de travail (PSPrivateMetadata).

Exemple 4 : Attendre la suspension du travail de flux de travail

PS C:\> Suspend-Job VersionCheck -Wait
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
 5     VersionCheck  PSWorkflowJob      Suspended     True            localhost            LogWorkflow

Cette commande suspend la tâche de workflow VersionCheck. La commande utilise le paramètre Wait pour attendre que le travail de flux de travail soit suspendu. Lorsque le travail de flux de travail s’exécute sur le point de case activée suivant et est suspendu, la commande se termine et retourne l’objet de travail.

Exemple 5 : Forcer l’interruption d’un travail de flux de travail

PS C:\> Suspend-Job Maintenance -Force

Cette commande suspend de force la tâche de workflow Maintenance. Le travail de maintenance n’a pas de points de case activée. Il ne peut pas être suspendu correctement et peut ne pas reprendre correctement.

Paramètres

-Confirm

Vous demande une confirmation avant d’exécuter l’applet de commande.

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

-Filter

Spécifie une table de conditions de hachage. Cette applet de commande interrompt les travaux qui répondent à toutes les conditions. Entrez une table de hachage où les clés sont les propriétés des travaux et les valeurs celles des propriétés des travaux.

Type:Hashtable
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Force

Suspend immédiatement la tâche de workflow. Cette action peut entraîner une perte d’état et de données.

Par défaut, Suspend-Job permet au travail de flux de travail d’exécuter jusqu’au point de case activée suivant, puis de le suspendre. Vous pouvez également utiliser ce paramètre pour suspendre des tâches de workflow qui n'ont pas de points de contrôle.

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

-Id

Spécifie les ID des travaux suspendus par cette applet de commande.

L’ID est un entier qui identifie de façon unique le travail dans la session active. Il est plus facile de mémoriser et de taper que l’ID d’instance, mais il est unique uniquement dans la session active. Vous pouvez taper un ou plusieurs ID, séparés par des virgules. Pour rechercher l’ID d’un travail, utilisez l’applet Get-Job de commande.

Type:Int32[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InstanceId

Spécifie les ID d’instance des travaux suspendus par cette applet de commande. Par défaut, il s'agit de toutes les tâches.

Un ID d'instance est un GUID qui identifie de façon unique la tâche sur l'ordinateur. Pour rechercher l’ID d’instance d’un travail, utilisez Get-Job.

Type:Guid[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Job

Spécifie les travaux de flux de travail arrêtés par cette applet de commande. Entrez une variable qui contient les tâches de workflow ou tapez une commande permettant d'obtenir ces tâches de workflow. Vous pouvez également diriger les travaux de flux de travail vers l’applet Suspend-Job de commande.

Type:Job[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Spécifie les noms conviviaux des travaux suspendus par cette applet de commande. Entrez un ou plusieurs noms de tâches de workflow. Les caractères génériques sont pris en charge.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-State

Spécifie un état de travail. Cette applet de commande arrête uniquement les travaux dans l’état spécifié. Les valeurs valides pour ce paramètre sont :

  • NotStarted
  • En cours d’exécution
  • Terminée
  • Échec
  • Arrêté
  • Bloqué
  • Interrompu
  • Déconnecté
  • Suspension
  • Arrêt en cours

Suspend-Jobsuspend uniquement les travaux de flux de travail dans l’état en cours d’exécution.

Pour plus d’informations sur les états de travail, consultez Énumération JobState.

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

Indique que cette applet de commande supprime l’invite de commandes jusqu’à ce que le travail de workflow soit à l’état suspendu. Par défaut, Suspend-Job retourne immédiatement, même si le travail de workflow n’est pas encore dans l’état suspendu.

Le paramètre Wait équivaut à passer une Suspend-Job commande à l’applet de Wait-Job commande.

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

-WhatIf

Montre ce qui se passe en cas d’exécution de l’applet de commande. L’applet de commande n’est pas exécutée.

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

Entrées

Job

Vous pouvez diriger tous les types de travaux vers cette applet de commande. Toutefois, s’il Suspend-Job obtient un travail d’un type non pris en charge, il retourne une erreur de fin.

Sorties

Job

Cette applet de commande retourne les travaux qu’il a suspendus.

Notes

Windows PowerShell inclut les alias suivants pour Suspend-Job:

  • sujb

Le mécanisme et l'emplacement pour enregistrer une tâche suspendue peuvent varier selon le type de tâche. Par exemple, les tâches de workflow suspendues sont enregistrées par défaut dans un magasin de fichiers plats, mais elles peuvent également être enregistrées dans une base de données.

Si vous envoyez un travail de flux de travail qui n’est pas dans l’état en cours d’exécution, Suspend-Job affiche un message d’avertissement. Pour supprimer l’avertissement, utilisez le paramètre commun WarningAction avec la valeur SilentlyContinue.

Si un travail n’est pas d’un type qui prend en charge la suspension, Suspend-Job retourne une erreur de fin.

Pour rechercher les travaux de flux de travail suspendus, y compris ceux qui ont été suspendus par cette applet de commande, utilisez le paramètre État de l’applet Get-Job de commande pour obtenir des travaux de flux de travail dans l’état suspendu.

Certains types de tâche ont des options ou des propriétés qui empêchent Windows PowerShell de suspendre la tâche. Si des tentatives d’interruption du travail échouent, vérifiez que les options et propriétés du travail autorisent la suspension.