Partager via


Remove-Job

Supprime une tâche en arrière-plan de Windows PowerShell.

Syntaxe

Remove-Job [-Id] <Int32[]> [-Force] [-Confirmer] [-WhatIf] [<CommonParameters>]

Remove-Job [-Command <string[]>] [-Confirmer] [-WhatIf] [<CommonParameters>]

Remove-Job [[-InstanceId] <Guid[]>] [-Force] [-Confirmer] [-WhatIf] [<CommonParameters>]

Remove-Job [-Job] <Job[]> [-Force] [-Confirmer] [-WhatIf] [<CommonParameters>]

Remove-Job [[-Name] <string[]>] [-Force] [-Confirmer] [-WhatIf] [<CommonParameters>]

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

Description

L'applet de commande Remove-Job supprime les tâches en arrière-plan de Windows PowerShell démarrées à l'aide de Start-Job ou le paramètre AsJob de toute applet de commande.

Vous pouvez utiliser cette applet de commande pour supprimer toutes les tâches sélectionnées en fonction de leur nom, ID, ID d'instance, commande ou état, ou en passant un objet de traitement à Remove-Job. Sans paramètres ou valeurs de paramètre, Remove-Job n'a aucun effet.

Avant de supprimer une tâche en cours d'exécution, utilisez l'applet de commande Stop-Job pour arrêter la tâche. Si vous essayez de supprimer une tâche en cours d'exécution, celle-ci échoue. Vous pouvez utiliser le paramètre Force de Remove-Job pour supprimer une tâche en cours d'exécution.

Si vous ne supprimez pas une tâche en arrière-plan, la tâche reste dans le cache de tâches global jusqu'à ce que vous fermiez la session dans laquelle elle a été créée.

Paramètres

-Command <string[]>

Supprime les tâches qui incluent les mots spécifiés dans la commande.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByPropertyName)

Accepter les caractères génériques ?

false

-Force

Supprime la tâche même si l'état est « En cours d'exécution ». Sans le paramètre Force, Remove-Job ne supprimera pas de tâche en cours d'exécution.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Id <Int32[]>

Supprime les tâches en arrière-plan avec les ID spécifiés.

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'ID d'instance, mais est unique seulement 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[]>

Supprime les tâches comportant les ID d'instance spécifiés.

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 ou affichez l'objet de traitement.

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 à supprimer. 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 envoyer des tâches à l'applet de commande Remove-Job.

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[]>

Supprime uniquement les tâches avec les noms conviviaux spécifiés. Les caractères génériques sont autorisés.

Parce qu'il n'est pas garanti que le nom convivial soit unique, même dans la session, utilisez les paramètres WhatIf et Confirm lors de la suppression des tâches par 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

-State <JobState>

Supprime uniquement les tâches ayant l'état spécifié. Les valeurs valides sont NotStarted, Running, Completed, Stopped, Failed et Blocked. Pour supprimer les tâches ayant l'état Running, utilisez le paramètre Force.

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

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

Sorties

Aucun

Cette applet de commande ne génère aucune sortie.

Exemple 1

C:\PS>$batch = get-job -name BatchJob

C:\PS> $batch | remove-job

Description
-----------
Ces commandes suppriment une tâche en arrière-plan nommée BatchJob de la session active. La première commande utilise l'applet de commande Get-Job pour obtenir un objet qui représente la tâche, puis elle enregistre la tâche dans la variable $batch. La deuxième commande utilise un opérateur de pipeline (|) pour envoyer la tâche à l'applet de commande Remove-Job.

Cette commande revient à utiliser le paramètre Job de Remove-Job, par exemple, « remove-job -job $batch ».





Exemple 2

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

Description
-----------
Cette commande supprime toutes les tâches de la session active.





Exemple 3

C:\PS>remove-job -state NotStarted

Description
-----------
Cette commande supprime toutes les tâches de la session active qui n'ont pas encore été démarrées.





Exemple 4

C:\PS>remove-job -name *batch -force

Description
-----------
Cette commande supprime de la session active toutes les tâches ayant des noms conviviaux qui se terminent par « batch », notamment les tâches en cours d'exécution. 

Elle utilise le paramètre Name de Remove-Job pour spécifier un modèle de nom de tâche et le paramètre Force pour s'assurer que toutes les tâches sont supprimées, même celles qui peuvent être en cours d'exécution.





Exemple 5

C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-process} -asJob

C:\PS> $j | remove-job

Description
-----------
Cet exemple montre comment utiliser l'applet de commande Remove-Job pour supprimer une tâche qui a été démarrée sur un ordinateur distant à l'aide du paramètre AsJob de l'applet de commande Invoke-Command.

La première commande utilise l'applet de commande Invoke-Command pour exécuter une tâche sur l'ordinateur Server01. Elle fait appel au paramètre AsJob pour exécuter la commande comme une tâche en arrière-plan et enregistre l'objet de traitement résultant dans la variable $j.

Parce que la commande a utilisé le paramètre AsJob, l'objet de traitement est créé sur l'ordinateur local, bien que la tâche s'exécute sur un ordinateur distant. En conséquence, vous utilisez des commandes locales pour gérer la tâche.

La deuxième commande utilise l'applet de commande Remove-Job pour supprimer la tâche. Elle utilise un opérateur de pipeline (|) pour envoyer la tâche de $j à Remove-Job. Notez que c'est une commande locale. Une commande distante n'est pas obligatoire pour supprimer une tâche qui a été démarrée à l'aide du paramètre AsJob.





Exemple 6

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

C:\PS> invoke-command -session $s -scriptblock {start-job -scriptblock {get-process} -name MyJob}

C:\PS> invoke-command -session $s -scriptblock {remove-job -name MyJob}

Description
-----------
Cet exemple montre comment supprimer une tâche qui a été démarrée en utilisant Invoke-Command pour exécuter une commande Start-Job. Dans ce cas, l'objet de traitement est créé sur l'ordinateur distant et vous utilisez des commandes distantes pour gérer la tâche.

La première commande utilise l'applet de commande New-PSSession pour créer une session PSSession (une connexion permanente) sur l'ordinateur Server01. Une connexion permanente est obligatoire lors de l'exécution d'une commande Start-Job à distance. Cette commande enregistre la session PSSession dans la variable $s.

La deuxième commande utilise l'applet de commande Invoke-Command pour exécuter une commande Start-Job dans la session PSSession de la variable $s. La tâche exécute une commande Get-Process. Elle utilise le paramètre Name de Start-Job afin de spécifier un nom convivial pour la tâche.

La troisième commande utilise l'applet de commande Invoke-Command pour exécuter une commande Remove-Job dans la session PSSession de $s. Elle utilise le paramètre Name de Remove-Job pour identifier la tâche à supprimer.





Exemple 7

C:\PS>$j = start-job -script {get-process powershell}

C:\PS> $j | format-list -property *

C:\PS> remove-job -instanceID dce2ee73-f8c9-483e-bdd7-a549d8687eed

C:\PS> $j = start-job -script {get-process powershell}

C:\PS> $j | format-list -property *

HasMoreData   : False
StatusMessage :
Location      : localhost
Command       : get-process powershell
JobStateInfo  : Failed
Finished      : System.Threading.ManualResetEvent
InstanceId    : dce2ee73-f8c9-483e-bdd7-a549d8687eed
Id            : 1
Name          : Job1
ChildJobs     : {Job2}
Output        : {}
Error         : {}
Progress      : {}
Verbose       : {}
Debug         : {}
Warning       : {}
StateChanged  :

C:\PS> remove-job -instanceID dce2ee73-f8c9-483e-bdd7-a549d8687eed

Description
-----------
Cet exemple montre comment supprimer une tâche en fonction de son ID d'instance. 

La première commande utilise l'applet de commande Start-Job pour démarrer une tâche en arrière-plan. Elle enregistre l'objet de traitement résultant dans la variable $j.

La deuxième commande utilise un opérateur de pipeline (|) pour envoyer l'objet de traitement de $j à une commande Format-List. La commande Format-List utilise le paramètre Property avec la valeur * (tous) pour afficher toutes les propriétés de l'objet de traitement dans une liste.

L'affichage de l'objet de traitement présente les valeurs des propriétés ID et InstanceID, avec les autres propriétés de l'objet. 

La troisième commande utilise une commande Remove-Job pour supprimer la tâche de la session active. Pour générer la commande, vous pouvez copier et coller la valeur InstanceID de l'affichage de l'objet. 

Pour copier une valeur dans la console Windows PowerShell, utilisez la souris pour sélectionner la valeur, puis appuyez sur Entrée pour la copier. Pour coller une valeur, cliquez avec le bouton droit.





Voir aussi

Concepts

about_Jobs
about_Job_Details
about_Remote_Jobs
Start-Job
Get-Job
Receive-Job
Wait-Job
Stop-Job
Invoke-Command