Arrête un ou plusieurs processus en cours d'exécution.

Syntaxe

Stop-Process [-Id] <Int32[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Process -InputObject <Process[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Process -Name <string[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Description

L'applet de commande Stop-Process arrête un ou plusieurs processus en cours d'exécution. Vous pouvez spécifier un processus par nom ou par son identificateur de processus (PID) ou passer un objet processus à Stop-Process. Stop-Process fonctionne uniquement sur les processus qui s'exécutent sur l'ordinateur local.

Sous Windows Vista et les versions ultérieures de Windows, vous devez démarrer Windows PowerShell avec l'option Exécuter en tant qu'administrateur pour arrêter un processus qui n'appartient pas à l'utilisateur actuel. Vous êtes également invité à confirmer l'opération, sauf si vous utilisez le paramètre Force.

Paramètres

-Force

Arrête les processus spécifiés sans inviter à confirmer l'opération. Par défaut, Stop-Process invite à confirmer l'opération avant d'arrêter tout processus qui n'appartient pas à l'utilisateur actuel.

Pour rechercher le propriétaire d'un processus, utilisez l'applet de commande Get-WmiMethod pour obtenir un objet Win32_Process qui représente le processus, puis utilisez la méthode GetOwner de l'objet.

Obligatoire ?

false

Position ?

named

Valeur par défaut

False

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Id <Int32[]>

Spécifie les identificateurs des processus à arrêter. Lorsque vous spécifiez plusieurs identificateurs, séparez-les à l'aide de virgules. Pour rechercher le PID d'un processus, tapez « get-process ». Le nom de paramètre (« Id ») est facultatif.

Obligatoire ?

true

Position ?

1

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByPropertyName)

Accepter les caractères génériques ?

false

-InputObject <Process[]>

Arrête les processus représentés par les objets Process spécifiés. Entrez une variable contenant les objets ou tapez une commande ou une expression permettant d'obtenir ces objets.

Obligatoire ?

true

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByValue)

Accepter les caractères génériques ?

false

-Name <string[]>

Spécifie les noms des processus à arrêter. Vous pouvez taper plusieurs noms de processus (séparés par des virgules) ou utiliser des caractères génériques.

Obligatoire ?

true

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByPropertyName)

Accepter les caractères génériques ?

false

-PassThru

Retourne un objet représentant le processus. Par défaut, cette applet de commande ne génère aucune sortie.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Confirm

Vous invite à confirmer l'exécution de la commande.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-WhatIf

Décrit le résultat que vous obtiendriez en exécutant la commande, sans réellement l'exécuter.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

<CommonParameters>

Cette applet de commande prend en charge les paramètres courants : -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer et -OutVariable. Pour plus d'informations, consultez about_Commonparameters.

Entrées et sorties

Le type d'entrée est le type des objets que vous pouvez diriger vers l'applet de commande. Le type de retour est le type des objets que l'applet de commande retourne.

Entrées

System.Diagnostics.Process

Vous pouvez diriger un objet processus vers Stop-Process.

Sorties

Aucun ou System.Diagnostics.Process

Lorsque vous utilisez le paramètre PassThru, Stop-Process retourne un objet System.Diagnostics.Process qui représente le processus arrêté. Sinon, cette applet de commande ne génère aucune sortie.

Remarques

Vous pouvez également faire référence à Stop-Process par ses alias intégrés, « kill » et « spps ». Pour plus d'informations, consultez about_Aliases.

Vous pouvez également utiliser les propriétés et les méthodes de l'objet WMI (Windows Management Instrumentation) Win32_Process dans Windows PowerShell. Pour plus d'informations, consultez Get-WmiObject et le Kit de développement WMI (SDK).

Lorsque vous arrêtez des processus, sachez que l'arrêt d'un processus peut arrêter les processus et les services qui dépendent de ce processus. Dans certains cas extrêmes, l'arrêt d'un processus peut entraîner l'arrêt de Windows.

Exemple 1

C:\PS>stop-process -name notepad

Description
-----------
Cette commande arrête toutes les instances du processus Notepad (Bloc-notes) sur l'ordinateur (Chaque instance de Notepad s'exécute dans son propre processus.) Elle utilise le paramètre Name pour spécifier les processus portant tous le même nom. Pour utiliser le paramètre ID en vue d'arrêter les mêmes processus, vous devez répertorier les identificateurs de processus de chaque instance de Notepad.






Exemple 2

C:\PS>stop-process -id 3952 -confirm -passthru

Confirm
Are you sure you want to perform this action?
Performing operation "Stop-Process" on Target "notepad (3952)".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):y
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
     41       2      996       3212    31            3952 notepad

Description
-----------
Cette commande arrête une instance particulière du processus Notepad. Elle utilise l'ID de processus 3952 pour identifier le processus. Le paramètre Confirm force Windows PowerShell à demander confirmation auprès de l'utilisateur avant d'arrêter le processus. Il s'agit là de la méthode recommandée car l'invite inclut le nom du processus, mais également son identificateur. Le paramètre PassThru passe l'objet processus au formateur pour l'affichage. Sans ce paramètre, il n'y aurait aucun affichage après une commande Stop-Process.






Exemple 3

C:\PS>calc

c:\PS>$p = get-process calc

c:\PS>stop-process -inputobject $p

c:\PS>get-process | where-object {$_.HasExited}

Description
-----------
Cette série de commandes démarre et arrête le processus Calc, puis détecte les processus arrêtés. 

La première commande (« calc ») démarre une instance de la calculatrice. La deuxième commande (« $p = get-process calc »), utilise l'applet de commande Get-Process pour obtenir un objet qui représente le processus Calc, puis le stocke dans la variable $p. La troisième commande (« stop-process -inputobject $p ») utilise l'applet de commande Stop-Process pour arrêter le processus Calc. Elle utilise le paramètre InputObject pour passer l'objet à Stop-Process. 

La dernière commande obtient tous les processus qui étaient en cours d'exécution sur l'ordinateur mais qui sont maintenant arrêtés. Elle utilise l'applet de commande Get-Process pour obtenir tous les processus sur l'ordinateur. L'opérateur de pipeline (|) passe les résultats à l'applet de commande Where-Object qui sélectionne ceux dont la propriété HasExited a la valeur TRUE. HasExited n'est qu'une des propriétés des objets Process. Pour rechercher toutes les propriétés, tapez « get-process | get-member ».






Exemple 4

C:\PS>get-process lsass | stop-process

Stop-Process : Cannot stop process 'lsass (596)' because of the following error: Access is denied
At line:1 char:34
+ get-process lsass  | stop-process <<<<

[ADMIN]: C:\PS> get-process lsass | stop-process
Warning!
Are you sure you want to perform this action?
Performing operation 'Stop-Process' on Target 'lsass(596)'
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):

[ADMIN]: C:\PS> get-process lsass | stop-process -force
[ADMIN]: C:\PS>

Description
-----------
Ces commandes illustrent l'utilisation du paramètre Force pour arrêter un processus qui n'appartient pas à l'utilisateur.

La première commande utilise l'applet de commande Get-Process pour obtenir le processus Lsass. Un opérateur de pipeline envoie le processus à l'applet de commande Stop-Process pour l'arrêter. Comme indiqué dans l'exemple de sortie, la première commande échoue avec un message « Accès refusé », car ce processus ne peut être arrêté que par un membre du groupe Administrateurs sur l'ordinateur.

Lorsque Windows PowerShell est ouvert avec l'option « Exécuter en tant qu'administrateur » et que la commande est répétée, Windows PowerShell vous invite à confirmer l'opération.

La deuxième commande utilise le paramètre Force pour supprimer l'invite. Le processus est alors arrêté sans confirmation.






Voir aussi




Table des matières