Stop-Process
Arrête un ou plusieurs processus en cours d'exécution.
Syntax
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 Stop-Process
de commande 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 passer un objet de processus à Stop-Process
. Stop-Process
fonctionne uniquement sur les processus en cours d’exécution 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 Confirm .
Exemples
Exemple 1 : Arrêter toutes les instances d’un processus
PS C:\> Stop-Process -Name "notepad"
Cette commande arrête toutes les instances du processus Notepad (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, qui ont tous le même nom. Si vous utilisez le paramètre ID pour arrêter les mêmes processus, vous devez répertorier les ID de processus de chaque instance du Bloc-notes.
Exemple 2 : Arrêter une instance spécifique d’un processus
PS C:\> 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 Notepad. Elle utilise l’ID de processus 3952 pour identifier le processus. Le paramètre Confirm indique à PowerShell de vous inviter avant d’arrêter le processus. Étant donné que l’invite inclut le nom du processus en plus de son ID, il s’agit de la meilleure pratique.
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 Stop-Process
commande.
Exemple 3 : Arrêter un processus et détecter qu’il s’est 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 Calc
processus, puis détecte les processus qui se sont arrêtés.
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 Calc
processus, puis le stocke dans la $p
variable.
La troisième commande arrête le Calc
processus. Il 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. Il utilise Get-Process
pour obtenir tous les processus sur l’ordinateur. L’opérateur de pipeline (|
) transmet les résultats à l’applet Where-Object
de commande, qui sélectionne ceux où la valeur de la propriété HasExited est $True. HasExited n’est qu’une propriété des 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
[ADMIN]: PS>
Ces commandes montrent l’effet de l’utilisation de Force pour arrêter un processus qui n’appartient pas à 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 Accès 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 Force pour supprimer l’invite. Le processus est alors arrêté sans confirmation.
Paramètres
-Confirm
Vous demande une confirmation avant d’exécuter l’applet de commande.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Arrête les processus spécifiés sans inviter à confirmer l’opération. Par défaut, Stop-Process
demande une confirmation avant d’arrêter tout processus qui n’appartient pas à l’utilisateur actuel.
Pour rechercher le propriétaire d’un processus, utilisez l’applet Get-CimInstance
de commande pour obtenir un objet Win32_Process qui représente le processus, puis utilisez la méthode GetOwner de l’objet.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Spécifie les ID de processus 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
.
Type: | Int32[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InputObject
Spécifie les objets de processus à arrêter. Entrez une variable contenant les objets, ou tapez une commande ou une expression qui obtient ces objets.
Type: | Process[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | 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[] |
Aliases: | ProcessName |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-PassThru
Renvoie un objet qui représente le processus. Par défaut, cette applet de commande ne génère aucun résultat.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Montre ce qui se passe en cas d’exécution de l’applet de commande. 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
Vous pouvez diriger un objet de processus vers cette applet de commande.
Sorties
None, System.Diagnostics.Process
Cette applet de commande retourne un objet System.Diagnostics.Process qui représente le processus arrêté, si vous spécifiez le paramètre PassThru . Sinon, cette applet de commande ne génère aucune sortie.
Notes
Vous pouvez également faire référence à par
Stop-Process
ses alias intégrés,kill
etspps
pour plus d’informations, consultez about_Aliases.Vous pouvez également utiliser les propriétés et les méthodes de l’objet Win32_Process Windows Management Instrumentation (WMI) dans Windows PowerShell. Pour plus d’informations, consultez
Get-CimInstance
et le Kit de développement logiciel (SDK) WMI.Lorsque vous arrêtez 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 certains cas extrêmes, l’arrêt d’un processus peut entraîner l’arrêt de Windows.