Stop-Job
Arrête un travail en arrière-plan PowerShell.
Syntaxe
Stop-Job
[-PassThru]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-Job] <Job[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
L’applet de commande Stop-Job arrête les travaux en arrière-plan PowerShell en cours. Vous pouvez utiliser cette applet de commande pour arrêter tous les travaux ou arrêter les travaux sélectionnés en fonction de leur nom, ID, ID d’instance ou état, ou en transmettant un objet de travail à stop-Job.
Vous pouvez utiliser Stop-Job pour arrêter des travaux en arrière-plan, tels que ceux qui ont été démarrés à l’aide de l’applet de commande Start-Job ou du paramètre AsJob de n’importe quelle applet de commande. Lorsque vous arrêtez un travail en arrière-plan, PowerShell termine toutes les tâches en attente dans cette file d’attente de travaux, puis met fin au travail. Aucune nouvelle tâche n’est ajoutée à la file d’attente une fois cette commande envoyée.
Cette applet de commande ne supprime pas les travaux en arrière-plan. Pour supprimer un travail, utilisez l’applet de commande Remove-Job.
À compter de Windows PowerShell 3.0, arrêter les types de travaux personnalisés, tels que les travaux de flux de travail et les instances de travaux planifiés. Pour activer arrêter un travail avec un type de travail personnalisé, importez le module qui prend en charge le type de travail personnalisé dans la session avant d’exécuter une commande Stop-Job, à l’aide de l’applet de commande Import-Module ou de l’obtention d’une applet de commande dans le module. Pour plus d’informations sur un type de travail personnalisé particulier, consultez la documentation de la fonctionnalité de type de travail personnalisé.
Exemples
Exemple 1 : Arrêter un travail sur un ordinateur distant à l’aide de Invoke-Command
$s = New-PSSession -ComputerName Server01 -Credential Domain01\Admin02
$j = Invoke-Command -Session $s -ScriptBlock {Start-Job -ScriptBlock {Get-EventLog System}}
Invoke-Command -Session $s -ScriptBlock { Stop-job -Job $Using:j }
Cet exemple montre comment utiliser l’applet de commande Stop-Job pour arrêter un travail en cours d’exécution sur un ordinateur distant.
Étant donné que le travail a été démarré à l’aide de l’applet de commande Invoke-Command pour exécuter une commande start-job à distance, l’objet de travail est stocké sur l’ordinateur distant. Vous devez utiliser une autre commande Invoke-Command pour exécuter une commande Stop-Job à distance. Pour plus d’informations sur les travaux en arrière-plan distants, consultez about_Remote_Jobs.
La première commande crée une session PowerShell (PSSession) sur l’ordinateur Server01, puis stocke l’objet de session dans la variable $s. La commande utilise les informations d’identification d’un administrateur de domaine.
La deuxième commande utilise l’applet de commande invoke-command
La troisième commande arrête le travail.
Il utilise l’applet de commande
Une fois la commande terminée, le travail est arrêté et le PSSession
Exemple 2 : Arrêter un travail en arrière-plan
Stop-Job -Name "Job1"
Cette commande arrête le travail en arrière-plan Job1.
Exemple 3 : Arrêter plusieurs travaux en arrière-plan
Stop-Job -Id 1, 3, 4
Cette commande arrête trois travaux. Il les identifie par leurs ID.
Exemple 4 : Arrêter tous les travaux en arrière-plan
Get-Job | Stop-Job
Cette commande arrête tous les travaux en arrière-plan dans la session active.
Exemple 5 : Arrêter tous les travaux en arrière-plan bloqués
Stop-Job -State Blocked
Cette commande arrête tous les travaux bloqués.
Exemple 6 : Arrêter un travail à l’aide d’un ID d’instance
Get-Job | Format-Table ID, Name, Command, @{Label="State";Expression={$_.JobStateInfo.State}},
InstanceID -Auto
Id Name Command State InstanceId
-- ---- ------- ----- ----------
1 Job1 start-service schedule Running 05abb67a-2932-4bd5-b331-c0254b8d9146
3 Job3 start-service schedule Running c03cbd45-19f3-4558-ba94-ebe41b68ad03
5 Job5 get-service s* Blocked e3bbfed1-9c53-401a-a2c3-a8db34336adf
Stop-Job -InstanceId e3bbfed1-9c53-401a-a2c3-a8db34336adf
Ces commandes montrent comment arrêter un travail en fonction de son ID d’instance.
La première commande utilise l’applet de commande Get-Job pour obtenir les travaux dans la session active. La commande utilise un opérateur de pipeline (|) pour envoyer les travaux à une commande Format-Table, qui affiche une table des propriétés spécifiées de chaque travail. La table inclut l’ID d’instance de chaque travail. Il utilise une propriété calculée pour afficher l’état du travail.
La deuxième commande utilise une commande Stop-Job qui a le paramètre InstanceID pour arrêter un travail sélectionné.
Exemple 7 : Arrêter un travail sur un ordinateur distant
$j = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-EventLog System} -AsJob
$j | Stop-Job -PassThru
Id Name State HasMoreData Location Command
-- ---- ---- ----------- -------- -------
5 Job5 Stopped True user01-tablet get-eventlog system
Cet exemple montre comment utiliser l’applet de commande Stop-Job pour arrêter un travail en cours d’exécution sur un ordinateur distant.
Étant donné que le travail a été démarré à l’aide du paramètre
La première commande utilise la cmdlet Invoke-Command pour démarrer un travail en arrière-plan sur l’ordinateur Server01. La commande utilise le paramètre AsJob pour exécuter la commande distante en tant que travail en arrière-plan.
Cette commande retourne un objet de travail, qui est le même objet de travail que l’applet de commande start-job
La deuxième commande utilise un opérateur de pipeline pour envoyer le travail dans la variable $j à Stop-Job.
La commande utilise le paramètre PassThru
Pour plus d’informations sur les travaux en arrière-plan distants, consultez about_Remote_Jobs.
Paramètres
-Confirm
Vous invite à confirmer avant d’exécuter l’applet de commande.
Type: | SwitchParameter |
Alias: | cf |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Filter
Spécifie une table de conditions de hachage. Cette applet de commande arrête les travaux qui répondent à toutes les conditions. Entrez une table de hachage où les clés sont des propriétés de travail et les valeurs sont des valeurs de propriété de travail.
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 les travaux en arrière-plan standard, tels que ceux créés à l’aide de l’applet de commande start-job
Ce paramètre a été introduit dans Windows PowerShell 3.0.
Type: | Hashtable |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Id
Spécifie les ID des travaux arrêtés par cette applet de commande. La valeur par défaut est toutes les tâches de la session active.
L’ID est un entier qui identifie de façon unique le travail dans la session active.
Il est plus facile de mémoriser et de taper que l’ID d’instance, mais il est unique uniquement dans la session active.
Vous pouvez taper un ou plusieurs ID, séparés par des virgules.
Pour rechercher l’ID d’un travail, tapez Get-Job
.
Type: | Int32[] |
Position: | 0 |
Valeur par défaut: | All jobs |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-InstanceId
Spécifie les ID d’instance des travaux arrêtés par cette applet de commande. La valeur par défaut est tous les travaux.
Un ID d’instance est un GUID qui identifie de façon unique le travail sur l’ordinateur. Pour rechercher l’ID d’instance d’un travail, utilisez Get-Job.
Type: | Guid[] |
Position: | 0 |
Valeur par défaut: | All jobs |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Job
Spécifie les travaux arrêtés par cette applet de commande.
Entrez une variable qui contient les travaux ou une commande qui obtient les travaux.
Vous pouvez également utiliser un opérateur de pipeline pour envoyer des travaux à l’applet de commande Stop-Job
Type: | Job[] |
Position: | 0 |
Valeur par défaut: | All jobs |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Name
Spécifie les noms conviviaux des travaux arrêtés par cette applet de commande. Entrez les noms de travaux dans une liste séparée par des virgules ou utilisez des caractères génériques (*) pour entrer un modèle de nom de travail. Par défaut, arrêter tous les travaux créés dans la session active.
Étant donné que le nom convivial n’est pas garanti comme unique, utilisez la WhatIf et Confirmer paramètres lors de l’arrêt des travaux par nom.
Type: | String[] |
Position: | 0 |
Valeur par défaut: | All jobs |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | True |
-PassThru
Retourne un objet représentant l’élément avec lequel vous travaillez. Par défaut, cette applet de commande ne génère aucune sortie.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-State
Spécifie un état de travail. Cette applet de commande arrête uniquement les travaux dans l’état spécifié. Les valeurs acceptables pour ce paramètre sont les suivantes :
- NotStarted
- Course
- Terminé
- Raté
- Arrêté
- Bloqué
- Suspendu
- Coupé
- Suspension
- Plombage
Pour plus d’informations sur les états de travail, consultez 'énumération JobState dans la bibliothèque MSDN.
Type: | JobState |
Valeurs acceptées: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Valeur par défaut: | All jobs |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-WhatIf
Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande n’est pas exécutée.
Type: | SwitchParameter |
Alias: | wi |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
System.Management.Automation.RemotingJob
Vous pouvez diriger un objet de travail vers cette applet de commande.
Sorties
None, System.Management.Automation.PSRemotingJob
Cette applet de commande retourne un objet de travail, si vous spécifiez le paramètre passThru