Partager via


Resume-Job

Redémarre un travail suspendu.

Syntaxe

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

La cmdlet Resume-Job reprend un travail de flux de travail suspendu, par exemple à l’aide de l’applet de commande Suspend-Job ou de l’activité about_Suspend-Workflow. Lorsqu’un travail de flux de travail reprend, le moteur de travail reconstruit l’état, les métadonnées et la sortie des ressources enregistrées, telles que les points de contrôle. Le travail est redémarré sans perte d’état ou de données. L’état du travail passe de suspendu à en cours d’exécution.

Utilisez les paramètres de Resume-Job pour sélectionner des travaux par nom, ID, ID d’instance ou canaliser un objet de travail, tel qu’un objet de travail retourné par l’applet de commande Get-Job, pour Resume-Job . Vous pouvez également utiliser un filtre de propriété pour sélectionner un travail à reprendre.

Par défaut, reprise de travail retourne immédiatement, même si tous les travaux peuvent ne pas encore être repris. Pour supprimer l’invite de commandes jusqu’à ce que tous les travaux spécifiés soient repris, utilisez le paramètre Wait.

L’applet de commande Resume-Job fonctionne uniquement sur les types de travaux personnalisés, tels que 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. Si vous envoyez un travail d’un type non pris en charge, reprise-travail génère une erreur d’arrêt et arrête l’exécution.

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 la cmdlet Resume-Job, consultez les rubriques d’aide pour le type de travail personnalisé.

Avant d’utiliser une applet de commande Job sur un type de travail personnalisé, importez le module qui prend en charge le type de travail personnalisé, soit à l’aide de l’applet de commande Import-Module, soit de l’obtention ou de l’utilisation d’une applet de commande dans le module.

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

Exemples

Exemple 1 : Reprendre un travail par ID

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

Les commandes de cet exemple vérifient que le travail est un travail de flux de travail suspendu, puis reprend le travail.

Exemple 2 : Reprendre un travail par nom

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

Cette commande utilise le paramètre Name pour reprendre plusieurs travaux de flux de travail sur l’ordinateur local.

Exemple 3 : Utiliser des valeurs de propriété personnalisées

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

Cette commande utilise la valeur d’une propriété personnalisée pour identifier la tâche de flux de travail à reprendre. Il utilise le paramètre Filter pour identifier le travail de flux de travail par sa propriété CustomID. Il utilise également le paramètre State pour vérifier que le travail de flux de travail est suspendu, avant de tenter de le reprendre.

Exemple 4 : Reprendre tous les travaux suspendus sur un ordinateur distant

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

Cette commande reprend tous les travaux suspendus sur l’ordinateur distant Srv01.

La commande utilise l’applet de commande Invoke-Command pour exécuter une commande sur l’ordinateur Srv01. La commande distante utilise le paramètre State de l’applet de commande Get-Job pour obtenir tous les travaux suspendus sur l’ordinateur. Un opérateur de pipeline (|) envoie les travaux suspendus à l’applet de commande Resume-Job , qui les reprend.

Exemple 5 : Attendre que les travaux reprendnt

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

Cette commande utilise le paramètre Wait pour diriger reprendre le travail uniquement une fois que tous les travaux spécifiés sont repris. Le paramètre Wait est particulièrement utile dans les scripts qui supposent que les travaux sont repris avant la poursuite du script.

Exemple 6 : Reprendre un flux de travail qui se suspend lui-même

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

L’applet de commande Resume-Job vous permet de reprendre un travail de flux de travail qui a été suspendu à l’aide de l’activité Suspend-Workflow. Cette activité interrompt un flux de travail à partir d’un flux de travail. Il est valide uniquement dans les flux de travail.

Pour plus d’informations sur suspend-workflow, consultez about_Suspend-Workflow.

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 reprend les travaux qui répondent à toutes les conditions de la table de hachage. 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

-Id

Spécifie un tableau d’ID pour les travaux que cette applet de commande reprend.

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, exécutez 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 un tableau d’ID d’instance de travaux repris 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, exécutez 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 à reprendre. Entrez une variable qui contient les travaux ou une commande qui obtient les travaux. Vous pouvez également diriger les travaux vers l’applet de commande Resume-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 un tableau de noms conviviaux de travaux que cette applet de commande reprend. Entrez un ou plusieurs noms de travaux. Les caractères génériques sont autorisés.

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 l’état des travaux à reprendre. Les valeurs acceptables pour ce paramètre sont les suivantes :

  • NotStarted
  • Course
  • Terminé
  • Raté
  • Arrêté
  • Bloqué
  • Suspendu
  • Coupé
  • Suspension
  • Plombage

Cette applet de commande reprend uniquement les travaux dans l’état suspendu.

Pour plus d’informations sur les états de travail, consultez 'énumération JobState dans la bibliothèque MSDN.

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 tous les résultats du travail soient redémarrés. Par défaut, cette applet de commande retourne immédiatement les résultats disponibles.

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

Job

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

Sorties

None, System.Management.Automation.Job

Cette applet de commande retourne les travaux qu’il tente de reprendre, si vous utilisez le paramètre PassThru . Sinon, cette applet de commande ne génère aucune sortie.

Notes

  • reprise d’activité ne peut reprendre que les travaux suspendus. Si vous envoyez un travail dans un autre état, reprise d’activité exécute l’opération de reprise sur le travail, mais génère un avertissement pour vous avertir que le travail n’a pas pu être repris. 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 reprise, tel qu’un travail de flux de travail (PSWorkflowJob), resume-Job renvoie une erreur de fin.
  • 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 SQL.
  • Lorsque vous reprenez un travail, l’état du travail passe de suspendu à en cours d’exécution. Pour rechercher les travaux en cours d’exécution, y compris ceux qui ont été repris par cette applet de commande, utilisez le paramètre State de l’applet de commande Get-Job pour obtenir des travaux dans l’état En cours d’exécution.
  • 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.