Partager via


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 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 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 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, 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

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 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 Stop-Process commande.

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 Calc processus, 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 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 transmettre 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é 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
[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 pour Stop-Process 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 Force de 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
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 inviter à confirmer l’opération. Par défaut, Stop-Process vous êtes invité à 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 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
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. 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
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 contenant les objets, ou tapez une commande ou une expression qui obtient ces 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 aucun résultat.

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

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
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

Process

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.

Process

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 certains cas extrêmes, l’arrêt d’un processus peut entraîner l’arrêt de Windows.