Intéressé par l’utilisation de la cmdlet PowerShell Get-Process pour afficher les processus en cours d’exécution d’un système ? Avec Get-Process
, vous pouvez trouver le propriétaire du processus, l’ID du processus, ou même où sur le disque le processus est situé.
Dans cet article, vous apprendrez comment utiliser la cmdlet Get-Process
de PowerShell à travers des exemples concrets. Si manipuler des processus pour les plier à votre volonté sous Windows ou Linux vous semble amusant, alors continuez à lire !
Connexe : Comment tuer un processus sous Linux en utilisant ps, pgrep, pkill et plus encore !
Prérequis
Avant d’aller plus loin, voici les prérequis nécessaires pour suivre les exemples de cet article.
- Bien que Windows PowerShell 5.1 soit suffisant pour la plupart des exemples ici, PowerShell 7.1 et supérieur sont nécessaires pour le support Linux.
Connexe : Mise à niveau vers PowerShell 7 : Un guide pratique
- Cet article utilise Windows 10 et Ubuntu 20.04 LTS, mais tout système d’exploitation sur lequel PowerShell s’exécute fonctionnera.
Prêt ? Plongeons-nous et gérons quelques processus !
Affichage des processus en cours d’exécution
Get-Process
gère les processus locaux. Dans cet exemple, vous utilisez la cmdlet PowerShell Get-Process avec la commande c
. Cette commande affiche tous les processus en cours d’exécution.
Get-Process
renvoie un instantané ponctuel des informations sur les processus en cours d’exécution d’un système. Pour afficher des informations sur les processus en temps réel, Windows propose Windows Task Manager et Linux propose la commande top.
Pour commencer, ouvrez votre console PowerShell et exécutez Get-Process
. Remarquez que Get-Process
renvoie les informations sur les processus en cours d’exécution, comme indiqué ci-dessous. Le format de sortie est identique pour les systèmes d’exploitation Windows et Linux.

Get-Process
cmdlet on Windows to display local processes.Par défaut, les commandes
gps
oups
existent en tant qu’alias de commande pourGet-Process
. Comme PowerShell 7 est multiplateforme, la commandeps
entre en conflit avec une commande Linux intégrée. Par conséquent,ps
ne fonctionnera pas sur Linux, seul l’aliasgps
fonctionnera.
La signification de la sortie de Get-Process
peut ne pas être immédiatement évidente. Les propriétés par défaut de Get-Process
sont décrites plus en détail ci-dessous.
- NPM(K) – La quantité de mémoire non paginée qu’un processus utilise, affichée en kilo-octets, comme indiqué par la notation
(K)
. - PM(M) – La quantité de mémoire pageable qu’un processus utilise, affichée en mégaoctets, comme indiqué par la notation
(M)
. - WS(M) – La taille de l’ensemble de travail du processus, affichée en mégaoctets. L’ensemble de travail comprend les pages de mémoire récemment référencées par le processus.
- VM(M) – La quantité de mémoire virtuelle que le processus utilise, affichée en mégaoctets. Comprend le stockage dans les fichiers de pagination sur le disque.
- CPU(S) – La quantité de temps processeur que le processus a utilisée sur l’ensemble des processus, affichée en secondes.
- Id – L’identifiant du processus (PID) du processus.
- SI – Identifiant de session du processus en cours d’exécution. La session
0
indique que le processus est disponible pour tous les utilisateurs,1
indique que le processus existe sous le premier utilisateur connecté, et ainsi de suite. - ProcessName – Le nom du processus en cours d’exécution.
Pour afficher une liste d’alias de propriété mappés aux noms de propriété complets, utilisez la commande
Get-Process | Get-Member -MemberType 'AliasProperty'
.
Voici un autre excellent exemple. Pour chaque instance du processus brave qu’il trouve, il utilise l’ID de ce processus ($_.id
) et le passe à Get-NetTCPConnection
. PowerShell utilise ensuite Get-NetTCPConnection
pour trouver des informations sur chaque connexion réseau ouverte par le processus brave.
Exécutez le code suivant dans votre session PowerShell lorsque le navigateur Brave est en cours d’exécution.
Merci à Jay Adams chez SystemFrontier!
Félicitations, vous pouvez désormais afficher tous les processus en cours d’exécution à la fois sur Windows et Linux en utilisant Get-Process
!
Recherche d’attributs de processus spécifiques
Get-Process
retourne de nombreuses propriétés différentes sur les processus en cours d’exécution comme vous l’avez vu précédemment. Comme avec tous les autres objets PowerShell, vous pouvez sélectionner sélectivement des propriétés sur des objets.
Passons maintenant à un exemple simple de la manière dont vous pouvez récupérer des propriétés spécifiques pour un processus spécifique :
- Allumez votre calculatrice Windows.
2. Avec une console PowerShell ouverte, exécutez Get-Process
en utilisant le paramètre Name
pour afficher uniquement tous les processus en cours d’exécution avec Calculator comme nom. Vous verrez la même sortie que celle que vous avez vue précédemment.
Get-Process
retourne de nombreuses propriétés comme prévu. Peut-être que vous voulez seulement trouver l’utilisation du CPU avec la valeur sous la colonne CPU(s)
. Entourez la commande Get-Process
de parenthèses et référencez la propriété CPU
comme indiqué ci-dessous. Vous verrez qu’elle ne renvoie que la valeur de la propriété CPU
.
Remarquez que
Get-Process
renvoie un nom appeléCPU(s)
et le extrait de code ci-dessus utilise le nom de simplementCPU
. Parfois, PowerShell ne montre pas le vrai nom de la propriété dans la sortie. Ce concept est réalisé avec un fichier de format PS1XML.
Le temps CPU est exprimé en total des secondes à travers les cœurs. Pour obtenir un nombre plus lisible pour l’homme, arrondissez-le au dixième près en utilisant une méthode Math
comme indiqué ci-dessous.

Vous pouvez utiliser l’approche ci-dessus pour trouver d’autres propriétés également, comme
Id
si vous souhaitez seulement voir l’identifiant d’un processus.
Laissez l’application Calculatrice en cours d’exécution. Vous utiliserez cette application pour le reste des exemples.
Récupération de l’utilisation de la mémoire du processus
Le dépannage des systèmes lents peut être un défi, avec une mémoire contrainte souvent une cause. En continuant avec l’application Calculatrice, récupérez le processus Calculatrice
et affichez uniquement la propriété VM
. Comme on peut le voir ci-dessous, la mémoire utilisée est affichée en mégaoctets (Mo).

Calculator
process memory usage.Pour faciliter la compréhension de l’utilisation de la mémoire, utilisez les multiplicateurs de conversion intégrés de PowerShell pour changer les mégaoctets (Mo) en gigaoctets (Go). Dans l’exemple ci-dessous, vous convertirez la mémoire utilisée en Go, puis utiliserez la bibliothèque mathématique .NET méthode Round
pour arrondir la valeur, comme illustré dans la capture d’écran ci-dessous.
L’utilisation des utilitaires intégrés de PowerShell pour convertir les valeurs facilite la compréhension de la sortie. Continuez à lire pour apprendre comment localiser l’ID d’un processus.

Mise en Exergue de Propriétés Méconnues
Toutes les propriétés ne sont pas incluses ou affichées par défaut avec Get-Process
. Continuez ci-dessous pour en savoir plus sur les propriétés Path
et UserName
et comment les utiliser!
Découverte de l’emplacement du Binaire d’un Processus
Il existe de nombreux endroits sur un système où un exécutable de processus peut être stocké. Si un processus est en cours d’exécution, Get-Process
facilite la recherche du chemin du système de fichiers du fichier du processus, malgré le fait que Path
ne soit pas affiché par défaut. Comme illustré ci-dessous, la propriété Path
contient l’emplacement du système de fichiers de l’exécutable du processus.

Get-Process
to display a process’s full file system path on Windows.Tout comme dans Windows, Get-Process
dans Linux renvoie également le chemin du système de fichiers. Dans l’exemple ci-dessous, le processus gnome-calculator
est en cours d’exécution avec le chemin affiché dans la sortie de la console.

Get-Process
to display a process’s full file system path on Linux.Les acteurs malveillants astucieux peuvent nommer un processus de la même manière ou de manière similaire à un processus de confiance. Par conséquent, la capacité à localiser le chemin du système de fichiers aide dans un scénario de réponse à un incident de sécurité (IR). Continuez à lire pour découvrir comment localiser le propriétaire du processus, car UserName
n’est pas inclus dans la sortie par défaut.
Recherche du propriétaire du processus
Pour inclure la valeur UserName
dans la sortie, vous devrez utiliser le paramètre IncludeUserName
. Il est important de connaître le propriétaire du processus, surtout pour éviter de mettre fin involontairement au processus d’un autre utilisateur. Comme le montre l’exemple ci-dessous, la propriété UserName
est désormais incluse dans la sortie du processus.

Calculator
process on Windows.Enfin, continuez à lire pour en savoir plus sur l’utilisation de Get-Process
sur un ordinateur distant pour récupérer des informations sur les processus !
Recherche de processus sur des ordinateurs distants
Bien que dans Windows PowerShell, Get-Process
n’ait pas de capacités distantes par lui-même, vous pouvez toujours tirer parti de l’Exécution de commandes à distance PowerShell et de Invoke-Command
pour l’exécuter sur des ordinateurs distants.
Connexe : Comment configurer PSRemoting avec Windows et Linux
Mais, si vous êtes sur Linux ou si vous exécutez PowerShell 6 sur Windows, vous disposez désormais d’un paramètre ComputerName
que vous pouvez utiliser pour interroger les processus sur des ordinateurs distants.
Le paramètre
-ComputerName
a été supprimé dans PowerShell 7.x car le cmdlet n’est pas directement lié à l’accès à distance. Pour obtenir le même résultat, vous pouvez envelopper la même commande dans uneInvoke-Command
, comme ceci :Invoke-Command -ComputerName "NomOrdinateur" -ScriptBlock { Get-Process -ProcessName 'processus' }
Lorsque la commande ci-dessus est exécutée sur un ordinateur distant, la même sortie est affichée que si la commande Get-Process
était exécutée localement.
Voici un exemple d’accès à distance à un autre ordinateur et d’obtention des processus en cours d’exécution :

Vous pouvez cibler plusieurs ordinateurs en les séparant par une virgule, par exemple
Get-Process -ComputerName SRV1,SRV2.
Étapes suivantes
Dans cet article, vous avez appris comment utiliser le cmdlet PowerShell Get-Process
pour trouver les processus en cours d’exécution avec PowerShell sur des ordinateurs locaux et distants, à la fois sous Linux et Windows.
Maintenant, que ferez-vous de ces connaissances ? Essayez de passer un processus récupéré par Get-Process
à Stop-Process
sur un ordinateur local ou distant pour le terminer !
Source:
https://adamtheautomator.com/powershell-get-process/