Get-Process
Obtient les processus qui s’exécutent sur l’ordinateur local ou sur un ordinateur distant.
Syntaxe
Name (Par défaut)
Get-Process
[[-Name] <String[]>]
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
NameWithUserName
Get-Process
[[-Name] <String[]>]
[-IncludeUserName]
[<CommonParameters>]
IdWithUserName
Get-Process
-Id <Int32[]>
[-IncludeUserName]
[<CommonParameters>]
Id
Get-Process
-Id <Int32[]>
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
InputObjectWithUserName
Get-Process
-InputObject <Process[]>
[-IncludeUserName]
[<CommonParameters>]
InputObject
Get-Process
-InputObject <Process[]>
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Description
L’applet de commande Get-Process obtient les processus sur un ordinateur local ou distant.
Sans paramètres, cette applet de commande obtient tous les processus sur l’ordinateur local. Vous pouvez également spécifier un processus spécifique par nom de processus ou ID de processus (PID), ou en pipant un objet System.Diagnostics.Process vers cette applet de commande.
Par défaut, cette applet de commande retourne un objet Process qui contient des informations détaillées sur le processus et prend en charge les méthodes qui vous permettent de le contrôler. Avec les paramètres, vous pouvez modifier le type d’informations retournées par cette applet de commande.
- Module : Récupérer des informations pour chaque module chargé dans le processus.
- FileVersionInfo : récupérez les informations de version de fichier pour le module principal du processus.
Remarque
Un module est un fichier exécutable ou une bibliothèque de liens dynamiques (DLL) chargée dans un processus. Un processus comporte un ou plusieurs modules. Le module principal est le module utilisé pour démarrer initialement le processus. Pour plus d’informations, consultez La classe ProcessModule.
Exemples
Exemple 1 : Obtenir la liste de tous les processus en cours d’exécution sur l’ordinateur local
Get-Process
Cette commande obtient la liste de tous les processus en cours d’exécution sur l’ordinateur local. Pour obtenir une définition de chaque colonne d’affichage, consultez la section NOTES .
Pour afficher toutes les propriétés d’un objet Process , utilisez Get-Process | Get-Member. Par défaut, PowerShell affiche certaines valeurs de propriété à l’aide d’unités telles que kilo-octets (K) et mégaoctets (M). Les valeurs réelles auxquelles l’utilisateur accède avec l’opérateur d’accès membre (.) sont en octets.
Exemple 2 : Afficher des informations détaillées sur un ou plusieurs processus
Get-Process winword, explorer | Format-List *
Ce pipeline affiche des informations détaillées sur les processus et explorer les winword processus sur l’ordinateur. Il utilise le paramètre Name pour spécifier les processus, mais il omet le nom de paramètre facultatif. L’opérateur de pipeline (|) canalise les objets Process vers l’applet Format-List de commande, qui affiche toutes les propriétés disponibles (*) et leurs valeurs pour chaque objet.
Vous pouvez également identifier les processus par leurs ID de processus. Par exemple, Get-Process -Id 664, 2060.
Exemple 3 : Obtenir tous les processus avec un jeu de travail supérieur à une taille spécifiée
Get-Process | Where-Object { $_.WorkingSet -gt 20971520 }
Get-Process | Where-Object WorkingSet -GT 20MB
L’applet Get-Process de commande retourne les processus en cours d’exécution. La sortie est redirigée vers l’applet Where-Object de commande, qui sélectionne les objets dont la valeur WorkingSet est supérieure à 20 971 520 octets.
Dans le premier exemple, Where-Object utilise un scriptblock pour comparer la propriété WorkingSet de chaque objet Process . Dans le deuxième exemple, l’applet Where-Object de commande utilise la syntaxe simplifiée pour comparer la propriété WorkingSet . Dans ce cas, -GT il s’agit d’un paramètre, et non d’un opérateur de comparaison. Le deuxième exemple utilise également un suffixe littéral numérique comme alternative concise à 20971520. Dans PowerShell, MB représente un multiplicateur mebibyte (MiB).
20MB est égal à 20 971 520 octets.
Exemple 4 : Afficher les processus sur l’ordinateur dans des groupes en fonction de la priorité
$processes = Get-Process
$processes | Sort-Object { $_.PriorityClass } | Format-Table -View Priority
Ces commandes affichent des processus sur l’ordinateur dans des groupes en fonction de leur classe de priorité. La première commande obtient tous les processus sur l’ordinateur et les stocke dans la $processes variable.
La deuxième commande canalise les objets Process stockés dans la $processes variable vers l’applet Sort-Object de commande, puis vers l’applet Format-Table de commande, qui met en forme les processus à l’aide de la vue Priorité .
La vue Priorité et d’autres vues sont définies dans les fichiers de .ps1xml format dans le répertoire de base PowerShell ($PSHOME).
Exemple 5 : Ajouter une propriété à l’affichage de sortie « Get-Process » par défaut
Get-Process -Name powershell | Format-Table -Property @(
'Handles'
@{ Name = 'NPM(K)'; Expression = { [int] ($_.NPM / 1KB) } }
@{ Name = 'PM(K)'; Expression = { [int] ($_.PM / 1KB) } }
@{ Name = 'WS(K)'; Expression = { [int] ($_.WS / 1KB) } }
@{ Name = 'CPU(s)'; Expression = { if ($_.CPU) { $_.CPU.ToString('N') } } }
'Id'
@{ Name = 'SI'; Expression = 'SessionId' }
'ProcessName'
'StartTime'
) -AutoSize
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName StartTime
------- ------ ----- ----- ------ -- -- ----------- ---------
655 34 69424 83424 2.20 4240 1 powershell 4/14/2025 10:40:10 AM
572 36 68768 57260 7.41 4968 1 powershell 4/13/2025 3:33:50 PM
405 26 38144 30340 1.80 8776 1 powershell 4/14/2025 9:54:27 AM
Cet exemple récupère les processus de l’ordinateur local et canalise chaque objet Process vers l’applet Format-Table de commande.
Format-Table recrée l’affichage de sortie par défaut d’un objet Process à l’aide d’un mélange de noms de propriétés et de propriétés calculées. L’affichage inclut une propriété StartTime supplémentaire non présente dans l’affichage par défaut.
Exemple 6 : Obtenir des informations de version pour un processus
Get-Process -Name powershell -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
10.0.19041.320 10.0.19041.32... C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Cette commande utilise le paramètre FileVersionInfo pour obtenir des informations de version de fichier pour le module principal du powershell processus. Le module principal est le fichier utilisé pour démarrer le processus, ce qui, dans ce cas, est powershell.exe.
Pour utiliser cette commande avec des processus que vous ne possédez pas sur Windows Vista et les versions ultérieures de Windows, vous devez exécuter PowerShell avec des droits d’utilisateur élevés (Exécuter en tant qu’administrateur).
Exemple 7 : Obtenir des modules chargés avec le processus spécifié
Get-Process -Name SQL* -Module
Cette commande utilise le paramètre Module pour obtenir les modules chargés par tous les processus avec un nom commençant par SQL.
Pour utiliser cette commande avec des processus que vous ne possédez pas sur Windows Vista et les versions ultérieures de Windows, vous devez exécuter PowerShell avec des droits d’utilisateur élevés (Exécuter en tant qu’administrateur).
Exemple 8 : Rechercher le propriétaire d’un processus
Get-Process -Name powershell -IncludeUserName
Handles WS(K) CPU(s) Id UserName ProcessName
------- ----- ------ -- -------- -----------
782 132080 2.08 2188 DOMAIN01\user01 powershell
Get-CimInstance -ClassName Win32_Process -Filter "name='powershell.exe'" |
Invoke-CimMethod -MethodName GetOwner
Domain ReturnValue User PSComputerName
------ ----------- ---- --------------
DOMAIN01 0 user01
La première commande montre comment obtenir le propriétaire d’un processus. Le paramètre IncludeUserName nécessite des droits d’utilisateur élevés (Exécuter en tant qu’administrateur). La sortie indique que le propriétaire est DOMAIN01\user01.
Le deuxième pipeline montre une autre façon d’obtenir le propriétaire d’un processus à l’aide Get-CimInstance et Invoke-CimMethod. La classe Win32_Process avec un filtre récupère les powershell processus et la méthode appelée GetOwner() retourne des informations sur le domaine et l’utilisateur du processus. Cette méthode ne nécessite pas de droits d’utilisateur élevés.
Exemple 9 : Utiliser une variable automatique pour identifier le processus hébergeant la session active
Get-Process -Name powershell
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
561 44 47564 40740 6.48 2604 1 powershell
642 40 72040 24372 23.53 3576 1 powershel
Get-Process -Id $PID
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
647 40 72464 30716 23.67 3576 1 powershell
Ces commandes montrent comment utiliser la $PID variable automatique pour identifier le processus qui héberge la session PowerShell actuelle. Vous pouvez utiliser cette méthode pour distinguer le processus hôte des autres powershell processus que vous souhaiterez peut-être contrôler.
La première commande obtient tous les powershell processus en cours d’exécution. La deuxième commande obtient le powershell processus qui héberge la session active.
Exemple 10 : Obtenir tous les processus qui ont un titre de fenêtre principale et les afficher dans une table
Get-Process |
Where-Object -Property MainWindowTitle |
Format-Table -Property Id, Name, MainWindowTitle -AutoSize
Ce pipeline obtient tous les processus qui ont un titre de fenêtre principale et les affiche dans une table avec l’ID de processus et le nom.
MainWindowTitle est l’une des nombreuses propriétés utiles du type d’objet Diagnostics.Process qui Get-Process retourne. Pour afficher toutes les propriétés, utilisez Get-Process | Get-Member.
Paramètres
-ComputerName
Spécifie les ordinateurs pour lesquels cette applet de commande obtient des processus en cours d’exécution. La valeur par défaut est l’ordinateur local.
Spécifiez le nom NetBIOS, une adresse IP ou un nom de domaine complet (FQDN) d’un ou plusieurs ordinateurs. Pour spécifier l’ordinateur local, utilisez le nom de l’ordinateur, un point (.) ou localhost.
Ce paramètre ne s’appuie pas sur la communication à distance Windows PowerShell. Vous pouvez utiliser le paramètre ComputerName de cette applet de commande même si votre ordinateur n’est pas configuré pour exécuter des commandes distantes.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | Local computer |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | Cn |
Jeux de paramètres
Name
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
Id
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
InputObject
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-FileVersionInfo
Indique que cette applet de commande obtient les informations de version de fichier pour le programme qui s’exécute dans le processus.
Sur Windows Vista et les versions ultérieures de Windows, vous devez exécuter PowerShell avec des droits d’utilisateur élevés (Exécuter en tant qu’administrateur) pour utiliser ce paramètre sur les processus que vous ne possédez pas.
Vous ne pouvez pas utiliser les paramètres FileVersionInfo et ComputerName ensemble.
Pour obtenir des informations de version de fichier pour un processus sur un ordinateur distant, utilisez l’applet de commande Invoke-Command.
L’utilisation de ce paramètre est identique à l’accès à la propriété MainModule.FileVersionInfo de chaque objet Process . Lorsque vous utilisez ce paramètre, Get-Process retourne un objet FileVersionInfo , et non un objet Process . Vous ne pouvez pas diriger la sortie générée à l’aide de ce paramètre vers une applet de commande qui attend un objet Process , tel que Stop-Process.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | FV, FVI |
Jeux de paramètres
Name
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
Id
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
InputObject
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Id
Spécifie un ou plusieurs processus par ID de processus (PID). Vous pouvez spécifier plusieurs ID séparés par des virgules. Pour obtenir le PID d’un processus, utilisez Get-Process. Pour obtenir le PID de la session PowerShell actuelle, utilisez $PID.
Propriétés du paramètre
| Type: | Int32[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | Identifiant de processus (PID) |
Jeux de paramètres
IdWithUserName
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
Id
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-IncludeUserName
Indique que cette commande ajoute une propriété UserName à chaque objet Process retourné.
Vous devez exécuter PowerShell avec des droits d’utilisateur élevés (Exécuter en tant qu’administrateur) pour utiliser ce paramètre.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
NameWithUserName
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
IdWithUserName
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
InputObjectWithUserName
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-InputObject
Spécifie un ou plusieurs objets Process . Utilisez une variable qui contient les objets, une commande ou une expression qui obtient les objets.
Propriétés du paramètre
| Type: | Process[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
InputObjectWithUserName
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | True |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
InputObject
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | True |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Module
Indique que cette applet de commande obtient les modules que le processus a chargés.
Sur Windows Vista et les versions ultérieures de Windows, vous devez exécuter PowerShell avec des droits d’utilisateur élevés (Exécuter en tant qu’administrateur) pour utiliser ce paramètre sur les processus que vous ne possédez pas.
Pour obtenir les modules chargés par un processus sur un ordinateur distant, utilisez l’applet Invoke-Command de commande.
L’utilisation de ce paramètre est identique à l’accès à la propriété Modules de chaque objet Process .
Lorsque vous utilisez ce paramètre, Get-Process retourne un objet ProcessModule , et non un objet Process . Vous ne pouvez pas diriger la sortie générée à l’aide de ce paramètre vers une applet de commande qui attend un objet Process , tel que Stop-Process.
Lorsque vous utilisez les paramètres Module et FileVersionInfo ensemble, cette applet de commande retourne un objet FileVersionInfo avec des informations sur la version de fichier de tous les modules.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
Name
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
Id
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
InputObject
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Name
Spécifie un ou plusieurs processus par nom de processus. Vous pouvez spécifier plusieurs noms de processus séparés par des virgules et utiliser des caractères génériques. L’utilisation du -Name paramètre est facultative.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | True |
| DontShow: | False |
| Alias: | ProcessName |
Jeux de paramètres
Name
| Position: | 0 |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
NameWithUserName
| Position: | 0 |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
CommonParameters
Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.
Entrées
Process
Vous pouvez diriger les objets Process vers cette applet de commande.
Sorties
Process
Par défaut, cette applet de commande retourne un objet System.Diagnostics.Process.
FileVersionInfo
Si vous utilisez le paramètre FileVersionInfo , cette applet de commande renvoie un objet System.Diagnostics.FileVersionInfo .
ProcessModule
Si vous utilisez le paramètre Module , sans le paramètre FileVersionInfo , cette applet de commande renvoie un objet System.Diagnostics.ProcessModule .
Notes
Windows PowerShell inclut les alias suivants pour Get-Process:
gpsps
Sur les ordinateurs exécutant Windows 64 bits, la version 64 bits de PowerShell obtient le module principal et les modules de processus 64 bits. La version 32 bits de PowerShell obtient uniquement des modules de processus 32 bits.
Avertissement
Lorsque vous utilisez Get-Process pour obtenir un processus 64 bits dans la version 32 bits de PowerShell, les propriétés telles que Path et MainModule l’objet Process retourné sont $null. Vous devez utiliser la version 64 bits de PowerShell ou la classe Win32_Process .
Pour obtenir des informations de processus à partir d’un ordinateur distant, utilisez l’applet Invoke-Command de commande. Pour plus d'informations, voir Invoke-Command.
Vous pouvez utiliser la classe WMI (Windows Management Instrumentation) Win32_Process dans PowerShell comme alternative à Get-Process. Pour plus d’informations, consultez :
L’affichage par défaut d’un objet Process est une vue de table qui inclut les colonnes suivantes.
- Handles : nombre de handles que le processus a ouverts.
- NPM(K) : quantité de mémoire non paginée utilisée par le processus, en kilo-octets.
- PM(K) : quantité de mémoire paginable utilisée par le processus, en kilo-octets.
- WS(K) : taille du jeu de travail du processus, en kilo-octets. Le jeu de travail se compose des pages de mémoire récemment référencées par le processus.
- Processeur(s) : durée du processeur utilisée par le processus sur tous les processeurs, en secondes.
- ID : ID de processus (PID) du processus.
- SI : ID de session du processus.
- ProcessName : nom du processus.
Vous pouvez utiliser les autres vues intégrées pour les objets Process disponibles avec Format-Table, tels que StartTime et Priority. Vous pouvez également concevoir vos propres vues.
Pour obtenir une description de tous les membres de l’objet Process disponibles, consultez Propriétés de processus et méthodes de processus.