Stop-Process
Arrête un ou plusieurs processus en cours d’exécution.
Syntaxe
Stop-Process
[-Id] <Int32[]>
[-PassThru]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Process
-Name <String[]>
[-PassThru]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Process
[-InputObject] <Process[]>
[-PassThru]
[-Force]
[-WhatIf]
[-Confirm]
[<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 de processus ou ID de processus (PID) ou transmettre un objet de processus à Stop-Process
.
Stop-Process
fonctionne uniquement sur les processus s’exécutant sur l’ordinateur local.
Sur Windows Vista et les versions ultérieures du système d’exploitation Windows, pour arrêter un processus qui n’appartient pas à l’utilisateur actuel, vous devez démarrer PowerShell à l’aide de l’option Exécuter en tant qu’administrateur. En outre, vous n’êtes pas invité à confirmer, sauf si vous spécifiez le paramètre Confirmer.
Exemples
Exemple 1 : Arrêter toutes les instances d’un processus
Stop-Process -Name "notepad"
Cette commande arrête toutes les instances du processus du Bloc-notes sur l’ordinateur. Chaque instance du Bloc-notes s’exécute dans son propre processus. Il utilise le paramètre Name pour spécifier les processus, dont tous ont le même nom. Si vous deviez utiliser le paramètre ID pour arrêter les mêmes processus, vous devrez répertorier les ID de processus de chaque instance du Bloc-notes.
Exemple 2 : Arrêter une instance spécifique d’un processus
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
Cette commande arrête une instance particulière du processus du Bloc-notes. Il utilise l’ID de processus, 3952, pour identifier le processus. Le paramètre Confirmer dirige PowerShell pour vous inviter avant d’arrêter le processus. Étant donné que l’invite inclut le nom du processus en plus de son ID, il est recommandé de procéder.
Le paramètre PassThru transmet l’objet de processus au formateur pour l’affichage. Sans ce paramètre, il n’y aurait pas d’affichage après une commande Stop-Process
.
Exemple 3 : Arrêter un processus et détecter qu’il a arrêté
calc
$p = Get-Process -Name "calc"
Stop-Process -InputObject $p
Get-Process | Where-Object {$_.HasExited}
Cette série de commandes démarre et arrête le processus Calc
, puis détecte les processus qui ont cessé.
La première commande démarre une instance de la calculatrice.
La deuxième commande utilise Get-Process
obtient un objet qui représente le processus Calc
, puis le stocke dans la variable $p
.
La troisième commande arrête le processus de Calc
. Il utilise le paramètre InputObject pour passer l’objet à Stop-Process
.
La dernière commande obtient tous les processus sur l’ordinateur en cours d’exécution, mais qui sont maintenant arrêtés. Il utilise Get-Process
pour obtenir tous les processus sur l’ordinateur. L’opérateur de pipeline (|
) transmet les résultats à l’applet de commande Where-Object
, qui sélectionne ceux où la valeur de la propriété hasExited est $True.
HasExited n’est qu’une seule propriété d’objets de processus. Pour rechercher toutes les propriétés, tapez Get-Process | Get-Member
.
Exemple 4 : Arrêter un processus qui n’appartient pas à l’utilisateur actuel
PS> Get-Process -Name "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 -Name "lsass" | Stop-Process <<<<
[ADMIN]: PS> Get-Process -Name "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]: PS> Get-Process -Name "lsass" | Stop-Process -Force
Ces commandes montrent l’effet de l’utilisation de Forcer pour arrêter un processus qui n’est pas détenu par l’utilisateur.
La première commande utilise Get-Process
pour obtenir le processus Lsass. Un opérateur de pipeline envoie le processus à Stop-Process
pour l’arrêter. Comme indiqué dans l’exemple de sortie, la première commande échoue avec un message Access refusé, car ce processus ne peut être arrêté que par un membre du groupe Administrateur sur l’ordinateur.
Lorsque PowerShell est ouvert à l’aide de l’option Exécuter en tant qu’administrateur et que la commande est répétée, PowerShell vous invite à confirmer.
La deuxième commande spécifie Forcer pour supprimer l’invite. Par conséquent, le processus est arrêté sans confirmation.
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 |
-Force
Arrête les processus spécifiés sans demander de confirmation. Par défaut, Stop-Process
invite à confirmer 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-CimInstance
pour obtenir un objet Win32_Process qui représente le processus, puis utilisez la méthode GetOwner de l’objet.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Id
Spécifie les ID de processus des processus à arrêter. Pour spécifier plusieurs ID, utilisez des virgules pour séparer les ID. Pour rechercher le PID d’un processus, tapez Get-Process
.
Type: | Int32[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-InputObject
Spécifie les objets de processus à arrêter. Entrez une variable qui contient les objets, ou tapez une commande ou une expression qui obtient les objets.
Type: | Process[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Name
Spécifie les noms de processus 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.
Type: | String[] |
Alias: | ProcessName |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | True |
-PassThru
Retourne un objet qui représente le processus. Par défaut, cette applet de commande ne génère aucune sortie.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
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
Vous pouvez diriger un objet de processus vers cette applet de commande.
Sorties
None
Par défaut, cette applet de commande ne retourne aucune sortie.
Lorsque vous utilisez le paramètre PassThru, cette applet de commande retourne un objet Process représentant le processus arrêté.
Notes
PowerShell inclut les alias suivants pour Stop-Process
:
- Toutes les plateformes :
spps
- Windows:
kill
Vous pouvez également utiliser les propriétés et méthodes de l’objet WMI (Windows Management Instrumentation) Win32_Process dans Windows PowerShell. Pour plus d’informations, consultez Get-CimInstance
et le Kit de développement logiciel (SDK) WMI.
- Lors de l’arrêt des processus, réalisez que l’arrêt d’un processus peut arrêter le processus et les services qui dépendent du processus. Dans un cas extrême, l’arrêt d’un processus peut arrêter Windows.