Stop-Process
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
Concepts
Get-Process
Start-Process
Stop-Process
Wait-Process
Debug-Process