Partager via


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 $SRemove-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

Job

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.