Suspend-Job
Arrête temporairement les travaux de flux de travail.
Syntaxe
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 de commande Suspend-Job
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 flux de travail de suspendre le flux de travail. 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 de commande Suspend-Job
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 de commande Start-Job
.
Pour identifier un travail de flux de travail, recherchez la valeur PSWorkflowJob dans la PSJobTypeName propriété du travail. Pour déterminer si un type de travail personnalisé particulier prend en charge l’applet de commande Suspend-Job
, consultez les rubriques d’aide relatives au type de travail personnalisé.
Lorsque vous suspendez un travail de flux de travail, le travail de flux de travail s’exécute au point de contrôle suivant, suspend et retourne immédiatement un objet de travail de flux de travail. Pour attendre la fin de la suspension avant d’obtenir le travail, utilisez le paramètre Wait de Suspend-Job
ou l’applet de commande Wait-Job
. Lorsque le travail de flux de travail est suspendu, la valeur de la propriété d’état de du travail est suspendue.
La suspension s’appuie correctement 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 contrôle 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 de points de contrôle, il ne peut pas être suspendu correctement. Pour ajouter des points de contrôle à un flux de travail que vous exécutez, utilisez le paramètre commun PSPersist flux de travail. Vous pouvez utiliser le paramètre Forcer pour suspendre immédiatement tout travail de flux de travail et pour suspendre un travail de flux de travail qui n’a pas de points de contrôle, 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é, tel qu’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 Import-Module
, 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 un travail de flux de travail.
La première commande crée le flux de travail Get-SystemLog
. Le flux de travail utilise l’activité CheckPoint-Workflow
pour définir un point de contrôle dans le flux de travail.
La deuxième commande utilise le paramètre AsJob commun à tous les flux de travail pour exécuter le flux de travail Get-SystemLog
en tant que travail en arrière-plan. La commande utilise le paramètre commun JobName workflow pour spécifier un nom convivial pour le travail de flux de travail.
La troisième commande utilise l’applet de commande Get-Job
pour obtenir le travail de flux de travail LogflowJob
. La sortie indique que la valeur de la propriété PSJobTypeName est PSWorkflowJob.
La quatrième commande utilise l’applet de commande Suspend-Job
pour suspendre le travail LogflowJob
. Le travail s’exécute sur le point de contrôle, puis s’interrompt.
#Sample Workflow
Workflow Get-SystemLog
{
$Events = Get-WinEvent -LogName System
CheckPoint-Workflow
InlineScript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}
Get-SystemLog -AsJob -JobName "LogflowJob"
Get-Job -Name LogflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 LogflowJob PSWorkflowJob Running True localhost Get-SystemLog
Suspend-Job -Name LogflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 LogflowJob PSWorkflowJob Suspended True localhost Get-SystemLog
Exemple 2 : Suspendre et reprendre un travail de flux de travail
Cet exemple montre comment suspendre et reprendre un travail de flux de travail.
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 de commande Get-Job
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 de commande Get-Job
pour obtenir le travail LogWorkflowJob et l’applet de commande Resume-Job
pour la reprendre. La sortie indique que le travail de flux de travail a repris correctement et est maintenant en cours d’exécution.
Suspend-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
Get-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Suspended True localhost LogWorkflow
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
Invoke-Command -ComputerName Srv01 -Scriptblock {Suspend-Job -Filter @{CustomID="031589"}
Cette commande utilise l’applet de commande Invoke-Command
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
Suspend-Job VersionCheck -Wait
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
5 VersionCheck PSWorkflowJob Suspended True localhost LogWorkflow
Cette commande suspend le travail de flux de travail 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 contrôle 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
Suspend-Job Maintenance -Force
Cette commande interrompt la tâche de flux de travail de maintenance de force. Le travail de maintenance n’a pas de points de contrôle. Il ne peut pas être suspendu correctement et peut ne pas reprendre correctement.
Paramètres
-Confirm
Vous invite à confirmer avant d’exécuter l’applet de commande.
Type: | SwitchParameter |
Alias: | cf |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 des propriétés de travail et les valeurs sont des valeurs de propriété de travail.
Type: | Hashtable |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Force
Suspend immédiatement le travail de flux de travail. 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 contrôle suivant, puis de le suspendre.
Vous pouvez également utiliser ce paramètre pour suspendre les travaux de flux de travail qui n’ont pas de points de contrôle.
Type: | SwitchParameter |
Alias: | F |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 de commande Get-Job
.
Type: | Int32[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-InstanceId
Spécifie les ID d’instance des travaux suspendus par cette applet de commande. La valeur par défaut est tous les travaux.
Un ID d’instance est un GUID qui identifie de façon unique le travail sur l’ordinateur. Pour rechercher l’ID d’instance d’un travail, utilisez Get-Job
.
Type: | Guid[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Job
Spécifie les travaux de flux de travail arrêtés par cette applet de commande. Entrez une variable qui contient les travaux de flux de travail ou une commande qui obtient les travaux de flux de travail. Vous pouvez également diriger les travaux de flux de travail vers l’applet de commande Suspend-Job
.
Type: | Job[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Name
Spécifie les noms conviviaux des travaux suspendus par cette applet de commande. Entrez un ou plusieurs noms de travaux de flux de travail. Les caractères génériques sont pris en charge.
Type: | String[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-State
Spécifie un état de travail. Cette applet de commande arrête uniquement les travaux dans l’état spécifié. Les valeurs acceptables pour ce paramètre sont les suivantes :
- NotStarted
- Course
- Terminé
- Raté
- Arrêté
- Bloqué
- Suspendu
- Coupé
- Suspension
- Plombage
Suspend-Job
suspend 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 |
Valeurs acceptées: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | 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 à l’état suspendu.
Le paramètre Wait équivaut à passer une commande Suspend-Job
à l’applet de commande Wait-Job
.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-WhatIf
Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande n’est pas exécutée.
Type: | SwitchParameter |
Alias: | wi |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
Vous pouvez diriger tous les types de travaux vers cette applet de commande. Toutefois, si Suspend-Job
obtient un travail d’un type non pris en charge, il retourne une erreur de fin.
Sorties
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 d’enregistrement d’un travail suspendu peuvent varier en fonction du type de travail. Par exemple, les travaux de flux de travail suspendus sont enregistrés dans un magasin de fichiers plat par défaut, mais peuvent également être enregistrés 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 WarningAction paramètre commun 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 State de l’applet de commande Get-Job
pour obtenir les travaux de flux de travail dans l’état suspendu.
Certains types de travaux ont des options ou des propriétés qui empêchent Windows PowerShell de suspendre le travail. Si des tentatives d’interruption du travail échouent, vérifiez que les options et propriétés du travail autorisent la suspension.