Remove-Job
Supprime une tâche en arrière-plan PowerShell.
Syntaxe
SessionIdParameterSet (Par défaut)
Remove-Job
[-Id] <Int32[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
JobParameterSet
Remove-Job
[-Job] <Job[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
NameParameterSet
Remove-Job
[-Name] <String[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceIdParameterSet
Remove-Job
[-InstanceId] <Guid[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
FilterParameterSet
Remove-Job
[-Filter] <Hashtable>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
StateParameterSet
Remove-Job
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
CommandParameterSet
Remove-Job
[-Command <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
L’applet de commande Remove-Job supprime les travaux en arrière-plan PowerShell démarrés par l’applet de commande Start-Job ou par des applets de commande telles que Invoke-Command qui prennent en charge le paramètre AsJob.
Vous pouvez utiliser Remove-Job pour supprimer tous les travaux ou supprimer les travaux sélectionnés. Les travaux sont identifiés par leur Name, ID, InstanceId, Commandou State. Il est également possible d'envoyer un objet de travail dans le pipeline vers Remove-Job. Sans paramètres ni valeurs de paramètre, Remove-Job n’a aucun effet.
Depuis PowerShell 3.0, Remove-Job peut supprimer des types de tâches personnalisées, tels que des tâches planifiées et des tâches de flux de travail. Par exemple, Remove-Job supprime le travail planifié, toutes les instances du travail planifié sur le disque et les résultats de toutes les instances de travail déclenchées.
Si vous essayez de supprimer un travail en cours d’exécution, Remove-Job échoue. Utilisez l’applet de commande Stop-Job pour arrêter un travail en cours d’exécution. Vous pouvez également utiliser Remove-Job avec le paramètre Forcer pour supprimer un travail en cours d’exécution.
Les travaux restent dans le cache de travaux global jusqu’à ce que vous supprimiez le travail en arrière-plan ou fermez la session PowerShell.
Exemples
Exemple 1 : Supprimer une tâche en utilisant son nom
Cet exemple utilise une variable et le pipeline pour supprimer un travail par son nom.
$batch = Get-Job -Name BatchJob
$batch | Remove-Job
Get-Job utilise le paramètre Name pour spécifier la tâche, BatchJob. L’objet de travail est stocké dans la variable $batch. L’objet dans $batch est envoyé vers le bas du pipeline à Remove-Job.
Une autre solution consiste à utiliser le paramètre Job, tel que Remove-Job -Job $batch.
Exemple 2 : Supprimer tous les travaux d’une session
Dans cet exemple, tous les travaux de la session PowerShell actuelle sont supprimés.
Get-Job | Remove-Job
Get-Job récupère tous les travaux de la session PowerShell en cours. Les objets de travail sont envoyés dans le pipeline à Remove-Job.
Exemple 3 : Supprimer des travaux non démarrés
Cet exemple supprime tous les travaux de la session PowerShell actuelle qui n’ont pas démarré.
Remove-Job -State NotStarted
Remove-Job utilise le paramètre d'état pour spécifier l'état du travail.
Exemple 4 : Supprimer des travaux à l’aide d’un nom convivial
Cet exemple supprime toutes les tâches de la session active dont les noms descriptifs se terminent par lot, y compris les tâches en cours d’exécution.
Remove-Job -Name *batch -Force
Remove-Job utilise le paramètre Name pour spécifier un modèle de nom de travail. Le modèle inclut le caractère générique astérisque (*) pour trouver tous les noms de travaux qui se terminent par batch. Le paramètre Force supprime les travaux en cours d'exécution.
Exemple 5 : Supprimer un travail créé par Invoke-Command
Cet exemple supprime un travail démarré sur un ordinateur distant à l’aide de Invoke-Command avec le paramètre AsJob.
Étant donné que l’exemple utilise le paramètre AsJob, l’objet de travail est créé sur l’ordinateur local. Toutefois, le travail s’exécute sur un ordinateur distant. Par conséquent, vous utilisez des commandes locales pour gérer le travail.
$job = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} -AsJob
$job | Remove-Job
Invoke-Command exécute un travail sur l’ordinateur Server01. Le paramètre AsJob exécute le ScriptBlock en tant que travail en arrière-plan. L’objet de travail est stocké dans la variable $job. L’objet de variable $job est envoyé vers le bas du pipeline à Remove-Job.
Exemple 6 : Supprimer un travail créé par Invoke-Command et Start-Job
Cet exemple montre comment supprimer un travail sur un ordinateur distant démarré à l’aide de Invoke-Command pour exécuter Start-Job. L’objet de travail est créé sur l’ordinateur distant et les commandes distantes sont utilisées pour gérer le travail. Une connexion persistante est requise lors de l’exécution d’une commande de Start-Job distante.
$S = New-PSSession -ComputerName Server01
Invoke-Command -Session $S -ScriptBlock {Start-Job -ScriptBlock {Get-Process} -Name MyJob}
Invoke-Command -Session $S -ScriptBlock {Remove-Job -Name MyJob}
New-PSSession crée une PSSession, une connexion persistante, à l'ordinateur Server01. La connexion est enregistrée dans la variable $S.
Invoke-Command se connecte à la session enregistrée dans $S. Le ScriptBlock utilise Start-Job pour lancer un travail à distance. Le travail exécute une commande Get-Process et utilise le paramètre Name pour spécifier un nom de travail convivial MyJob.
Invoke-Command utilise la session $S et exécute Remove-Job. Le paramètre Name spécifie que le travail nommé MyJob est supprimé.
Exemple 7 : Supprimer un travail à l’aide de son InstanceId
Cet exemple supprime un travail en fonction de son InstanceId.
$job = Start-Job -ScriptBlock {Get-Process powershell}
$job | Format-List -Property *
Remove-Job -InstanceId ad02b942-8007-4407-87f3-d23e71955872
State : Completed
HasMoreData : True
StatusMessage :
Location : localhost
Command : Get-Process powershell
JobStateInfo : Completed
Finished : System.Threading.ManualResetEvent
InstanceId : ad02b942-8007-4407-87f3-d23e71955872
Id : 3
Name : Job3
ChildJobs : {Job4}
PSBeginTime : 7/26/2019 11:36:56
PSEndTime : 7/26/2019 11:36:57
PSJobTypeName : BackgroundJob
Output : {}
Error : {}
Progress : {}
Verbose : {}
Debug : {}
Warning : {}
Information : {}
Start-Job démarre un travail en arrière-plan et l’objet de travail est enregistré dans la variable $job.
L’objet dans $job est envoyé vers le bas du pipeline à Format-List. Le paramètre Property utilise un astérisque (*) pour spécifier que toutes les propriétés de l’objet sont affichées dans une liste.
Remove-Job utilise le paramètre InstanceId pour spécifier le travail à supprimer.
Paramètres
-Command
Supprime les travaux qui incluent les mots spécifiés dans la commande. Vous pouvez entrer un tableau séparé par des virgules.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
CommandParameterSet
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-Confirm
Vous demande une requête de confirmation avant l'exécution de Remove-Job.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | cf |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Filter
Supprime les travaux qui répondent à toutes les conditions établies dans la table de hachage associée. 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.
Ce paramètre fonctionne uniquement sur les types de travaux personnalisés, tels que les travaux de flux de travail et les travaux planifiés. Elle ne fonctionne pas sur des travaux en arrière-plan standard, tels que ceux créés à l’aide de l'Start-Job.
Ce paramètre est introduit dans PowerShell 3.0.
Propriétés du paramètre
| Type: | Hashtable |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
FilterParameterSet
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-Force
Supprime un travail même si son état est en cours d'exécution. Si le paramètre Forcer n’est pas spécifié, Remove-Job ne supprime pas les travaux en cours d’exécution.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | F |
Jeux de paramètres
SessionIdParameterSet
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
JobParameterSet
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
InstanceIdParameterSet
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
NameParameterSet
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
FilterParameterSet
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Id
Supprime les travaux d'arrière-plan avec l'ID spécifié. Vous pouvez saisir un tableau séparé par des virgules. L'ID de la tâche est un entier unique qui identifie une tâche dans la session actuelle.
Pour trouver l'ID d'un travail, utilisez Get-Job sans paramètres.
Propriétés du paramètre
| Type: | Int32[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
SessionIdParameterSet
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-InstanceId
Supprime les travaux dont l'identifiant (InstanceId) est spécifié. Vous pouvez entrer un tableau séparé par des virgules. Un InstanceId est un GUID unique qui identifie un travail.
Pour trouver l'InstanceId d'un travail, utilisez Get-Job.
Propriétés du paramètre
| Type: | Guid[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
InstanceIdParameterSet
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-Job
Spécifie les travaux à supprimer. Entrez une variable qui contient les tâches ou tapez une commande permettant d'obtenir ces tâches. Vous pouvez entrer un tableau séparé par des virgules.
Vous pouvez envoyer des objets de travail dans le pipeline à Remove-Job.
Propriétés du paramètre
| Type: | Job[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
JobParameterSet
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | True |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-Name
Supprime uniquement les travaux portant le nom convivial spécifié. Les caractères génériques sont autorisés. Vous pouvez entrer un tableau séparé par des virgules.
Il n'est pas garanti que les noms amicaux des travaux soient uniques, même au sein d'une session PowerShell. Utilisez les paramètres WhatIf et Confirmer lorsque vous supprimez des fichiers par nom.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | True |
| DontShow: | False |
Jeux de paramètres
NameParameterSet
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-State
Supprime uniquement les travaux dont l'état est spécifié. Pour supprimer des travaux dont l'état est Running, utilisez le paramètre Force.
Valeurs acceptées :
- AtBreakpoint
- Bloqué
- Terminé
- Déconnecté
- Échec
- NotStarted
- Course à pied
- Arrêté
- Arrêt
- Interrompu
- Suspension
Propriétés du paramètre
| Type: | JobState |
| Valeur par défaut: | None |
| Valeurs acceptées: | AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
StateParameterSet
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-WhatIf
Montre ce qui se passerait si Remove-Job s’exécute. L’applet de commande n’est pas exécutée.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | Wi |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
CommonParameters
Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.
Entrées
Job
Vous pouvez diriger un objet Job vers cette applet de commande.
Sorties
None
Cette applet de commande ne retourne aucune sortie.
Notes
PowerShell inclut les alias suivants pour Remove-Job:
- Toutes les plateformes :
rjb
Une tâche PowerShell crée un nouveau processus. Lorsque le travail est terminé, le processus se termine. Lorsque Remove-Job est exécuté, l'état du travail est supprimé.
Si un travail s’arrête avant l’achèvement et que son processus ne s'est pas terminé, le processus est terminé de force.