Partager via


Resume-Job

Redémarre une tâche suspendue.

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

L’applet Resume-Job de commande reprend un travail de flux de travail qui a été suspendu, par exemple à l’aide de l’applet Suspend-Job de commande 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 sélection des Resume-Job travaux par nom, ID, ID d’instance ou canaliser un objet de travail, tel qu’un objet retourné par l’applet Get-Job de commande, vers Resume-Job. Vous pouvez aussi utiliser un filtre de propriété pour sélectionner une tâche à reprendre.

Par défaut, Resume-Job 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 Resume-Job de commande 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 Start-Job de commande. Si vous envoyez un travail d’un type non pris en charge, Resume-Job génère une erreur de fin et cesse de s’exécuter.

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 Resume-Job de commande, 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é, à l’aide de l’applet de commande ou de l’obtention Import-Module 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

Les commandes de cet exemple vérifient que la tâche est une tâche de workflow suspendue, puis reprennent la tâche. La première commande utilise l’applet Get-Job de commande pour obtenir le travail. La sortie indique que le travail est un travail de flux de travail suspendu. La deuxième commande utilise le paramètre ID de l’applet Resume-Job de commande pour reprendre le travail avec une valeur d’ID de 4.

PS C:\> Get-Job EventJob
Id     Name            PSJobTypeName   State         HasMoreData     Location   Command
--     ----            -------------   -----         -----------     --------   -------
4      EventJob        PSWorkflowJob   Suspended     True            Server01   \\Script\Share\Event.ps1

PS C:\> Resume-Job -Id 4

Exemple 2 : Reprendre un travail par nom

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

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

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

Cette commande utilise la valeur d'une propriété personnalisée pour identifier la tâche de workflow à 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.

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

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

Cette commande reprend toutes les tâches suspendues sur l'ordinateur distant Srv01.

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

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

Exemple 5 : Attendre que les travaux reprendnt

Cette commande utilise le paramètre Wait pour diriger Resume-Job pour retourner 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.

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

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

Cet exemple de code montre l’activité Suspend-Workflow dans un flux de travail.

Flux Test-Suspend de travail sur l’ordinateur Server01. Lorsque vous exécutez le flux de travail, le flux de travail exécute l’activité Get-Date et stocke le résultat dans la $a variable. Ensuite, il exécute l’activité Suspend-Workflow . En réponse, il prend un point de contrôle, suspend le flux de travail et retourne un objet de travail de flux de travail. Suspend-Workflow retourne un objet de travail de flux de travail même si le flux de travail n’est pas exécuté explicitement en tant que travail.

Resume-Job reprend le Test-Suspend flux de travail dans Job8. Il utilise le paramètre Wait pour contenir l’invite de commandes jusqu’à ce que le travail soit repris.

L’applet Receive-Job de commande obtient les résultats du Test-Suspend flux de travail. La commande finale du flux de travail retourne un objet TimeSpan qui représente l’heure écoulée entre la date et l’heure actuelles et la date et l’heure enregistrées dans la $a variable avant la suspension du flux de travail.

#SampleWorkflow
Workflow Test-Suspend
{
    $a = Get-Date
    Suspend-Workflow
    (Get-Date)- $a
}

PS C:\> Test-Suspend -PSComputerName Server01
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
8      Job8            PSWorkflowJob   Suspended     True            Server01             Test-Suspend

PS C:\> Resume-Job -Name "Job8" -Wait
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
8      Job8            PSWorkflowJob   Running       True            Server01             Test-Suspend

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 Resume-Job de commande vous permet de reprendre un travail de flux de travail qui a été suspendu à l’aide de l’activité Suspend-Workflow . Cette activité suspend un workflow depuis un workflow. Elle est valide uniquement dans les workflows.

Pour plus d’informations sur le Suspend-Workflowabout_Suspend-Workflow](.. /PSWorkflow/about/about_Suspend-Workflow.md).

Paramètres

-Confirm

Vous demande une confirmation 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 les propriétés des travaux et les valeurs celles des propriétés des travaux.

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. 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, 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 tâches à reprendre. Entrez une variable qui contient les tâches ou tapez une commande permettant d'obtenir ces tâches. Vous pouvez également diriger des travaux vers l’applet Resume-Job de commande.

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 tâche. 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 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

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.

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

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
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 elle obtient un travail d’un type non pris en charge, elle 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

Windows PowerShell inclut les alias suivants pour Resume-Job:

  • rujb

  • Resume-Job ne peut reprendre que les travaux suspendus. Si vous envoyez un travail dans un autre état, Resume-Job 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 paramètre commun WarningAction 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 retourne une erreur de fin.

  • 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 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 État de l’applet Get-Job de commande pour obtenir des travaux dans l’état en cours d’exécution.

  • 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.