Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
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
asJobafin 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
ifqui 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.
API de Job-Related en arrière-plan
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.
Obtient les travaux en arrière-plan Windows PowerShell qui s’exécutent dans la session active.
Obtient les résultats des travaux en arrière-plan Windows PowerShell dans la session active.
Supprime un travail en arrière-plan Windows PowerShell.
Démarre un travail en arrière-plan Windows PowerShell.
Arrête une tâche en arrière-plan Windows PowerShell.
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.