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

Syntaxe

Stop-Job [[-InstanceId] <Guid[]>] [-PassThru] [-Confirmer] [-WhatIf] [<CommonParameters>]

Stop-Job [-Job] <Job[]> [-PassThru] [-Confirmer] [-WhatIf] [<CommonParameters>]

Stop-Job [[-Name] <string[]>] [-PassThru] [-Confirmer] [-WhatIf] [<CommonParameters>]

Stop-Job [-Id] <Int32[]> [-PassThru] [-Confirmer] [-WhatIf] [<CommonParameters>]

Stop-Job [-State {<NotStarted> | <Running> | <Completed> | <Failed> | <Stopped> | <Blocked>}] [-PassThru] [-Confirmer] [-WhatIf] [<CommonParameters>]

Description

L'applet de commande Stop-Job arrête des tâches en arrière-plan Windows PowerShell qui sont en cours d'exécution. Vous pouvez utiliser cette applet de commande pour arrêter toutes les tâches ou certaines tâches en fonction de leur nom, ID, ID d'instance ou état, ou en passant un objet de traitement à Stop-Job.

Vous pouvez utiliser Stop-Job pour arrêter des tâches démarrées à l'aide de Start-Job ou du paramètre AsJob d'Invoke-Command. Lorsque vous arrêtez une tâche en arrière-plan, Windows PowerShell termine toutes les tâches qui sont en attente dans cette file d'attente de tâches puis met fin à la tâche. Aucune nouvelle tâche n'est ajoutée à la file d'attente une fois que cette commande a été envoyée.

Cette applet de commande ne supprime pas de tâches en arrière-plan. Pour supprimer une tâche, utilisez Remove-Job.

Paramètres

-Id <Int32[]>

Arrête les tâches ayant les ID spécifiés. La valeur par défaut est toutes les tâches dans la session active.

L'ID est un entier qui identifie de manière unique la tâche dans la session active. Il est plus facile à mémoriser et à taper que l'InstanceId, mais est seulement unique dans la session active. Vous pouvez taper un ou plusieurs ID (séparés par des virgules). Pour rechercher l'ID d'une tâche, tapez « Get-Job » sans paramètres.

Obligatoire ?

true

Position ?

1

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByPropertyName)

Accepter les caractères génériques ?

false

-InstanceId <Guid[]>

Arrête uniquement les tâches ayant les ID d'instance spécifiés. La valeur par défaut est toutes les tâches.

Un ID d'instance est un GUID qui identifie de manière unique la tâche sur l'ordinateur. Pour rechercher l'ID d'instance d'une tâche, utilisez Get-Job.

Obligatoire ?

false

Position ?

1

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByPropertyName)

Accepter les caractères génériques ?

false

-Job <Job[]>

Spécifie les tâches à arrêter. Entrez une variable qui contient les tâches ou une commande qui obtient les tâches. Vous pouvez également utiliser un opérateur de pipeline pour soumettre des tâches à l'applet de commande Stop-Job. Par défaut, Stop-Job supprime toutes les tâches démarrées dans la session active.

Obligatoire ?

true

Position ?

1

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByValue, ByPropertyName)

Accepter les caractères génériques ?

false

-Name <string[]>

Arrête uniquement les tâches ayant les noms conviviaux spécifiés. Entrez les noms des tâches dans une liste séparée par des virgules ou utilisez des caractères génériques (*) pour entrer un modèle de nom de tâche. Par défaut, Stop-Job arrête toutes les tâches créées dans la session active.

Parce qu'il n'est pas certain que le nom convivial soit unique, utilisez les paramètres WhatIf et Confirm lors de l'arrêt des tâches selon leur nom.

Obligatoire ?

false

Position ?

1

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByPropertyName)

Accepter les caractères génériques ?

true

-PassThru

Retourne un objet représentant la nouvelle tâche en arrière-plan. Par défaut, cette applet de commande ne génère aucune sortie.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-State <JobState>

Arrête uniquement les tâches dans l'état spécifié. Les valeurs valides sont NotStarted, Running, Completed, Stopped, Failed et Blocked.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByPropertyName)

Accepter les caractères génériques ?

false

-Confirmer

Vous invite à confirmer l'exécution de la commande.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-WhatIf

Décrit le résultat que vous obtiendriez en exécutant la commande, sans réellement l'exécuter.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

<CommonParameters>

Cette applet de commande prend en charge les paramètres courants : -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer et -OutVariable. Pour plus d'informations, consultez about_Commonparameters.

Entrées et sorties

Le type d'entrée est le type des objets que vous pouvez diriger vers l'applet de commande. Le type de retour est le type des objets que l'applet de commande retourne.

Entrées

System.Management.Automation.RemotingJob

Vous pouvez diriger un objet de traitement vers Stop-Job.

Sorties

Aucun ou System.Management.Automation.RemotingJob

Lorsque vous utilisez le paramètre PassThru, Stop-Job retourne un objet de traitement. Sinon, cette applet de commande ne génère aucune sortie.

Exemple 1

C:\PS>$s = new-pssession -computername Server01 -credential domain01\admin02

C:\PS> $j = invoke-command -session $s -scriptblock {start-job -scriptblock {get-eventlog system}} 

C:\PS> invoke-command -session $s -scriptblock {param($j) stop-job -job $j} -ArgumentList $j

Description
-----------
Cet exemple montre comment utiliser l'applet de commande Stop-Job pour arrêter une tâche qui s'exécute sur un ordinateur distant. 

Parce que la tâche a été démarrée en utilisant Invoke-Command pour exécuter une commande Start-Job à distance, l'objet de traitement est stocké sur l'ordinateur distant, et vous devez utiliser une autre commande Invoke-Command pour exécuter une commande Stop-Job à distance. Pour plus d'informations sur les tâches en arrière-plan distantes, consultez about_Remote_Jobs.

La première commande crée une session Windows PowerShell (PSSession) sur l'ordinateur Server01 et enregistre l'objet session dans la variable $s. Elle utilise les informations d'identification d'un administrateur de domaine. 

La deuxième commande utilise l'applet de commande Invoke-Command pour exécuter une commande Start-Job dans la session. La commande de la tâche obtient tous les événements dans le journal des événements System. L'objet de traitement résultant est stocké dans la variable $j. 

La troisième commande arrête la tâche. Elle utilise l'applet de commande Invoke-Command pour exécuter une commande Stop-Job dans la session PSSession sur Server01. Étant donné que les objets de traitement sont stockés dans $j, qui est une variable sur l'ordinateur local, le mot clé « param » est utilisé pour déclarer les variables locales dans la commande et le paramètre ArgumentList pour fournir des valeurs pour les variables. 

Lorsque la commande s'achève, la tâche est arrêtée et la session PSSession dans $s est disponible pour utilisation.






Exemple 2

C:\PS>stop-job -state failed

Description
-----------
Cette commande arrête toutes les tâches ayant la valeur State « Failed ».






Exemple 3

C:\PS>stop-job -name job1

Description
-----------
Cette commande arrête la tâche en arrière-plan Job1.






Exemple 4

C:\PS>stop-job -id 1, 3, 4

Description
-----------
Cette commande arrête trois tâches. Elle les identifie par leurs ID.






Exemple 5

C:\PS>get-job | stop-job

Description
-----------
Cette commande arrête toutes les tâches en arrière-plan dans la session active.






Exemple 6

C:\PS>stop-job -state blocked

Description
-----------
Cette commande arrête toutes les tâches ayant l'état « Blocked ».






Exemple 7

C:\PS>get-job | format-table ID, Name, Command, @{Label="State";Expression={$_.jobstateinfo.state}}, I
nstanceID -auto

Id Name Command                 State  InstanceId
-- ---- -------                 -----  ----------
 1 Job1 start-service schedule Running 05abb67a-2932-4bd5-b331-c0254b8d9146
 3 Job3 start-service schedule Running c03cbd45-19f3-4558-ba94-ebe41b68ad03
 5 Job5 get-service s*         Blocked e3bbfed1-9c53-401a-a2c3-a8db34336adf

C:\PS> stop-job -instanceid e3bbfed1-9c53-401a-a2c3-a8db34336adf

Description
-----------
Ces commandes montrent comment arrêter une tâche en fonction de son ID d'instance. 

La première commande utilise une commande Get-Job pour obtenir les tâches dans la session active. Elle utilise un opérateur de pipeline (|) pour envoyer les tâches à une commande Format-Table, qui affiche une table des propriétés spécifiées de chaque tâche. La table inclut l'ID d'instance de chaque tâche. Elle utilise une propriété calculée pour afficher l'état de la tâche.

La deuxième commande utilise une commande Stop-Job avec le paramètre InstanceID pour arrêter une tâche sélectionnée.






Exemple 8

C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-eventlog system} -asjob

C:\PS> $j | stop-job -passthru

Id    Name    State      HasMoreData     Location         Command
--    ----    ----      -----------     --------          -------
5     Job5    Stopped    True            judithh-tablet   get-eventlog system

Description
-----------
Cet exemple montre comment utiliser l'applet de commande Stop-Job pour arrêter une tâche qui s'exécute sur un ordinateur distant. 

Parce que la tâche a été démarrée en utilisant le paramètre AsJob d'Invoke-Command, l'objet de traitement se trouve sur l'ordinateur local, bien que le tâche s'exécute sur l'ordinateur distant. Ainsi, vous pouvez utiliser une commande Stop-Job locale pour arrêter la tâche.

La première commande utilise l'applet de commande Invoke-Command pour démarrer une tâche en arrière-plan sur l'ordinateur Server01. Elle utilise le paramètre AsJob pour exécuter la commande à distance en tant que tâche en arrière-plan. 

Cette commande retourne un objet de traitement, qui est identique à celui retourné par Start-Job. Elle enregistre l'objet de traitement dans la variable $j.

La deuxième commande utilise un opérateur de pipeline (|) pour envoyer la tâche de la variable $j à Stop-Job. Elle fait appel au paramètre PassThru pour demander à Stop-Job de retourner un objet de traitement. L'affichage de l'objet de traitement confirme que l'état de la tâche « Stopped ».

Pour plus d'informations sur les tâches en arrière-plan à distance, consultez about_Remote_Jobs.






Voir aussi




Table des matières