Remove-Job
Supprime un travail en arrière-plan PowerShell.
Syntax
Remove-Job
[-Id] <Int32[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Job] <Job[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Name] <String[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-InstanceId] <Guid[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Filter] <Hashtable>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Command <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
L’applet Remove-Job
de commande supprime les travaux en arrière-plan PowerShell qui ont été démarrés par l’applet Start-Job
de commande ou par des applets de commande telles que Invoke-Command
celles 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 nom, id, ID d’instance, commande ou état. Vous pouvez également envoyer un objet de travail vers le pipeline Remove-Job
. Sans paramètres ou valeurs de paramètre, Remove-Job
n’a aucun effet.
Étant donné que PowerShell 3.0 peut Remove-Job
supprimer des types de travaux personnalisés, tels que les travaux planifiés et les travaux de flux de travail. Par exemple, Remove-Job
supprime le travail planifié, toutes les instances de la tâche planifiée 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 Stop-Job
de commande pour arrêter un travail en cours d’exécution. Vous pouvez également utiliser Remove-Job
le paramètre Force 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 un travail à l’aide de son nom
Cet exemple utilise une variable et le pipeline pour supprimer un travail par nom.
$batch = Get-Job -Name BatchJob
$batch | Remove-Job
Get-Job
utilise le paramètre Name pour spécifier le travail, BatchJob. L’objet de travail est stocké dans la $batch
variable. L’objet dans $batch
lequel est envoyé le pipeline vers Remove-Job
.
Une alternative 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
obtient tous les travaux de la session PowerShell actuelle. Les objets de travail sont envoyés au pipeline vers Remove-Job
.
Exemple 3 : Supprimer les travaux notStarted
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 State pour spécifier l’état du travail.
Exemple 4 : Supprimer des travaux à l’aide d’un nom convivial
Cet exemple supprime tous les travaux de la session active avec des noms conviviaux qui se terminent par batch*, y compris les travaux 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 l’astérisque (*
) wild carte pour rechercher tous les noms de travaux qui se terminent par lot. Le paramètre Force supprime les travaux qui s’exécutent.
Exemple 5 : Supprimer un travail créé par Invoke-Command
Cet exemple supprime un travail démarré sur un ordinateur distant à l’aide Invoke-Command
du 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 la tâche.
$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 ScriptBlock en tant que travail en arrière-plan. L’objet de travail est stocké dans la $job
variable. L’objet $job
variable est envoyé vers le bas du pipeline vers 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 qui a été démarré à l’aide Invoke-Command
de l’exécution 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 distante Start-Job
.
$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 session PSSession, une connexion persistante, à l’ordinateur Server01 . La connexion est enregistrée dans la $S
variable.
Invoke-Command
se connecte à la session enregistrée dans $S
. ScriptBlock utilise Start-Job
pour démarrer un travail distant. Le travail exécute une Get-Process
commande et utilise le paramètre Name pour spécifier un nom de travail convivial, MyJob.
Invoke-Command
utilise la session et s’exécute $S
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 $job
variable.
L’objet dans $job
lequel est envoyé le pipeline vers 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 tâches qui incluent les mots spécifiés dans la commande. Vous pouvez entrer un tableau séparé par des virgules.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
Vous invite à confirmer avant Remove-Job
l’exécution.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 tâches personnalisées, tels que les tâches de workflow et les tâches planifiées. Il ne fonctionne pas sur les travaux en arrière-plan standard, tels que ceux créés à l’aide du Start-Job
.
Ce paramètre est introduit dans PowerShell 3.0.
Type: | Hashtable |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Force
Supprime un travail même si l’état du travail est en cours d’exécution. Si le paramètre Force n’est pas spécifié, Remove-Job
ne supprime pas les travaux en cours d’exécution.
Type: | SwitchParameter |
Aliases: | F |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Supprime les travaux en arrière-plan avec l’ID spécifié. Vous pouvez entrer un tableau séparé par des virgules. L’ID du travail est un entier unique qui identifie un travail dans la session active.
Pour rechercher l’ID d’un travail, utilisez Get-Job
sans paramètres.
Type: | Int32[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InstanceId
Supprime les travaux avec l’Id d’instance spécifié. Vous pouvez entrer un tableau séparé par des virgules. Un Id d’instance est un GUID unique qui identifie un travail.
Pour rechercher l’Id d’instance d’un travail, utilisez Get-Job
.
Type: | Guid[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Job
Spécifie les tâches à 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 vers le pipeline .Remove-Job
Type: | Job[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | 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.
Les noms conviviaux pour les travaux ne sont pas garantis comme uniques, même dans une session PowerShell. Utilisez les paramètres WhatIf et Confirm lorsque vous supprimez des fichiers par nom.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-State
Supprime uniquement les travaux avec l’état spécifié. Pour supprimer des travaux avec l’état En cours d’exécution, utilisez le paramètre Force.
Valeurs acceptées :
- AtBreakpoint
- Bloqué
- Terminée
- Déconnecté
- Échec
- NotStarted
- Exécution en cours
- Arrêté
- Arrêt en cours
- Interrompu
- Suspension
Type: | JobState |
Accepted values: | AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Affiche ce qui se passe si Remove-Job
des exécutions sont exécutées. L’applet de commande n’est pas exécutée.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entrées
Vous pouvez diriger un objet Job vers cette applet de commande.
Sorties
None
Cette applet de commande ne retourne pas de sortie.
Notes
Windows PowerShell inclut les alias suivants pour Remove-Job
:
rjb
Un travail PowerShell crée un processus. Une fois la tâche terminée, le processus se termine. Quand Remove-Job
elle est exécutée, l’état du travail est supprimé.
Si un travail s’arrête avant l’achèvement et que son processus n’a pas quitté, le processus est arrêté de force.