Partager via


Travaux en arrière-plan

Les applets de commande peuvent effectuer leur action en interne ou en tant que tâche en arrière-plan Windows PowerShell. Lorsqu’une applet de commande s’exécute en tant que travail en arrière-plan, le travail est effectué de manière asynchrone dans son propre thread distinct du thread de pipeline que l’applet de commande utilise. Du point de vue de l’utilisateur, lorsqu’une applet de commande s’exécute en tant que travail en arrière-plan, l’invite de commandes retourne immédiatement même si le travail prend une durée prolongée et que l’utilisateur peut continuer sans interruption pendant l’exécution du travail.

Travaux en arrière-plan, travaux enfants et référentiel de travaux

L’objet de travail retourné par les applets de commande qui prennent en charge les travaux en arrière-plan définit le travail. (L’applet de commande start-job retourne également un objet de travail.) Nom du travail, identificateur utilisé pour spécifier le travail, les informations d’état et les travaux enfants sont inclus dans cette définition. Le travail n’effectue aucun travail. Chaque travail en arrière-plan a au moins un travail enfant, car le travail enfant effectue le travail réel. Lorsque vous exécutez une applet de commande pour que le travail soit effectué en tant que travail en arrière-plan, l’applet de commande doit ajouter le travail et les travaux enfants à un référentiel commun, appelé référentiel de travaux .

Pour plus d’informations sur la gestion des travaux en arrière-plan sur la ligne de commande, consultez les rubriques suivantes :

Écriture d’une applet de commande qui s’exécute en tant que travail en arrière-plan

Pour écrire une applet de commande qui peut être exécutée en tant que travail en arrière-plan, vous devez effectuer les tâches suivantes :

  • Définissez un paramètre de commutateur asJob afin que l’utilisateur puisse décider s’il faut exécuter l’applet de commande en tant que travail en arrière-plan.

  • Créez un objet qui dérive de la classe System.Management.Automation.Job. Cet objet peut être un objet de travail personnalisé ou un objet de travail fourni par Windows PowerShell, tel qu’un objet System.Management.Automation.PSEventJob.

  • Dans une méthode de traitement des enregistrements, ajoutez une instruction if qui détecte si l’applet de commande doit s’exécuter en tant que travail en arrière-plan.

  • Pour les objets de travail personnalisés, implémentez la classe de travail.

  • Retournez les objets appropriés, selon que l’applet de commande est exécutée en tant que travail en arrière-plan.

Pour obtenir un exemple de code, consultez Comment prendre en charge les travaux.

Les API suivantes sont fournies par Windows PowerShell pour gérer les travaux en arrière-plan.

System.Management.Automation.Job Dérive des objets de travail personnalisés. Il s’agit d’une classe abstraite.

System.Management.Automation.JobRepository Manage et fournit des informations sur les travaux en arrière-plan actifs actuels.

System.Management.Automation.JobState Définit l’état du travail en arrière-plan. Les états sont démarrés, en cours d’exécution et arrêtés.

System.Management.Automation.JobStateInfo Fournit des informations sur l’état d’un travail en arrière-plan et, si la dernière modification d’état a été provoquée par une erreur, la raison pour laquelle le travail a entré son état actuel.

System.Management.Automation.JobStateEventArgs Fournit les arguments d’un événement déclenché lorsqu’un travail en arrière-plan change d’état.

Applets de commande de travail Windows PowerShell

Les applets de commande suivantes sont fournies par Windows PowerShell pour gérer les travaux en arrière-plan.

Get-Job

Obtient les travaux en arrière-plan Windows PowerShell qui s’exécutent dans la session active.

Receive-Job

Obtient les résultats des travaux en arrière-plan Windows PowerShell dans la session active.

Remove-Job

Supprime un travail en arrière-plan Windows PowerShell.

Start-Job

Démarre un travail en arrière-plan Windows PowerShell.

Stop-Job

Arrête une tâche en arrière-plan Windows PowerShell.

Wait-Job

Supprime l’invite de commandes jusqu’à ce que l’un ou l’ensemble des travaux en arrière-plan Windows PowerShell exécutés dans la session soient terminés.

Voir aussi

écriture d’une applet de commande Windows PowerShell