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
[-Filter] <Hashtable>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-InstanceId] <Guid[]>
[-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 Invoke-Command
que celles qui prennent en charge le paramètre AsJob .
Vous pouvez utiliser Remove-Job
pour supprimer tous les travaux ou supprimer des travaux sélectionnés. Les travaux sont identifiés par leur nom, ID, ID d’instance, commande ou état. Ou bien, un objet de travail peut être envoyé vers le bas du pipeline à Remove-Job
. Sans paramètres ou valeurs de paramètre, Remove-Job
n’a aucun effet.
Depuis PowerShell 3.0, Remove-Job
peut supprimer des types de travaux personnalisés, tels que des travaux planifiés et des travaux 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 Stop-Job
de commande pour arrêter un travail en cours d’exécution. Vous pouvez également utiliser Remove-Job
avec 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 que vous fermiez 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
est envoyé vers le bas du pipeline à 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 vers le bas du pipeline vers Remove-Job
.
Exemple 3 : Supprimer les travaux Nondé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 State pour spécifier le travail status.
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 le caractère générique astérisque (*
) pour rechercher tous les noms de travaux qui se terminent par lot. 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 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 le 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 à 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 pour exécuter Start-Job
. L’objet de travail est créé sur l’ordinateur distant et des commandes distantes sont utilisées pour gérer le travail. Une connexion persistante est requise lors de l’exécution d’une commande à distance 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 $S
session 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 $job
variable .
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 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 de 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’InstanceId spécifié. Vous pouvez entrer un tableau séparé par des virgules. Un InstanceId est un GUID unique qui identifie un travail.
Pour rechercher l’InstanceId 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 dans le pipeline vers 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.
Il n’est pas garanti que les noms conviviaux des travaux soient uniques, même au sein d’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 dont l’état est En cours d’exécution, utilisez le paramètre Force .
Valeurs acceptées :
- AtBreakpoint
- Bloqué
- Effectué
- Déconnecté
- Failed
- NotStarted
- Exécution en cours
- Arrêté
- En cours d’arrêt
- 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
Montre ce qui se passerait en cas Remove-Job
d’exécution. 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 envoyer un objet de travail vers le bas du pipeline vers Remove-Job
.
Sorties
None
Remove-Job
ne génère aucune sortie.
Notes
Un travail PowerShell crée un processus. Une fois le travail terminé, le processus se termine. Quand 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 n’est pas arrêté, le processus est arrêté de force.