Comment obtenir la liste des processus en cours d'exécution dans PowerShell

  1. Utilisez la cmdlet Get-Process pour afficher une liste des processus en cours d’exécution dans PowerShell
  2. Conclusion
Comment obtenir la liste des processus en cours d'exécution dans PowerShell

Cet article explore l’utilisation de PowerShell pour la surveillance des processus, en mettant l’accent sur la cmdlet Get-Process. La cmdlet Get-Process, un élément essentiel de la gestion des processus, offre une vue complète des processus en cours d’exécution sur une machine Windows, affichant des informations critiques telles que les ID de processus, les noms, l’utilisation de la mémoire et la consommation du CPU.

L’article développe méthodiquement la syntaxe et les paramètres de la cmdlet, répondant à la fois aux demandes de processus générales et spécifiques.

Utilisez la cmdlet Get-Process pour afficher une liste des processus en cours d’exécution dans PowerShell

Il y a plus de 200 cmdlets disponibles dans l’environnement PowerShell. Chaque cmdlet est responsable de l’exécution d’une fonction spécifique.

La cmdlet Get-Process est l’une des cmdlets fréquemment utilisées qui aide à récupérer la liste des processus en cours d’exécution sur la machine Windows.

Cette cmdlet fournit des informations utiles liées à chaque processus, telles que l’ID du processus, le nom, l’utilisation de la mémoire, etc. De plus, elle montre un instantané des processus en cours d’exécution sur le système.

Syntaxe :

Get-Process [[-ProcessName] string[]] [-NameOfTheComputer string[]]
[-FileVersionInfo] [-Module] [CommonParameters]

Get-Process -processID Int32[] [-ComputerName string[]]
[-FileVersionInfo] [-Module] [CommonParameters]

Get-Process -ProcessInputObject Process[] [-ComputerName string[]]
[-FileVersionInfo] [-Module] [CommonParameters]

Paramètres :

  • ProcessName string[]: Spécifie un tableau de noms de processus à obtenir. Ce paramètre accepte des caractères génériques pour la correspondance de motifs. Si ce paramètre est omis, Get-Process récupère tous les processus.
  • ProcessId Int32[]: Spécifie les ID de processus des processus à récupérer. Ce paramètre vous permet de cibler directement des processus spécifiques.
  • InputObject Process[]: Spécifie un tableau d’objets de processus. Ce paramètre vous permet de diriger des objets de processus vers Get-Process.
  • NameOfTheComputer string[]: Indique le(s) nom(s) des ordinateurs sur lesquels exécuter la commande. Si ce paramètre est omis, Get-Process récupère les processus de l’ordinateur local.
  • FileVersionInfo: Ajoute des informations sur la version du fichier aux objets de processus. Ceci est utile lorsque vous souhaitez des détails sur le fichier exécutable du processus, tels que la version, le nom du produit, etc.
  • Module: Inclut les modules (DLL et fichiers exécutables) qui sont chargés par chaque processus. Cela est utile pour une analyse plus détaillée, comme vérifier quelles DLL sont chargées par un processus.
  • [CommonParameters]: Ce sont les paramètres que toutes les cmdlets supportent, tels que -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutVariable, -OutBuffer et -PipelineVariable.

Les paramètres sont optionnels pour la cmdlet Get-Process, et vous pouvez utiliser ces paramètres en fonction de vos besoins.

Afficher tous les processus en cours d’exécution

Nous pouvons directement utiliser la commande Get-Process sans aucun paramètre. Elle devrait afficher tous les processus en cours d’exécution à ce moment-là.

De plus, l’alias gps peut être utilisé à la place de la commande Get-Process.

Get-Process
gps

Sortie :

Afficher tous les processus en cours d’exécution

Lors de l’exécution de Get-Process ou gps, PowerShell commence une requête à l’échelle du système pour rassembler des informations sur tous les processus actifs. L’absence de paramètres dans ces commandes indique à PowerShell de ne pas appliquer de filtres et de récupérer les détails pour chaque processus.

PowerShell collecte alors des données détaillées sur chaque processus en cours d’exécution. Ces données incluent divers attributs qui décrivent l’état et les caractéristiques de ces processus.

PowerShell les formate dans un tableau pour affichage. Ce format tabulaire est conçu pour présenter l’information de manière claire et lisible.

Le tableau inclut généralement plusieurs colonnes clés :

  1. Id: Cette colonne montre l’Identifiant de Processus (PID), une étiquette numérique unique assignée à chaque processus. Le PID est crucial pour identifier et gérer spécifiquement les processus.
  2. ProcessName: C’est le nom du fichier exécutable qui a initié le processus. Cela aide à reconnaître facilement le processus, surtout pour les applications bien connues.
  3. CPU(s): Ici, nous voyons le temps CPU que le processus a consommé. Cela est mesuré en secondes et est vital pour évaluer quels processus utilisent des ressources CPU importantes, pouvant impacter la performance du système.
  4. PM(K): Cela signifie Paged Memory en Kilooctets. Cela représente la taille de la mémoire que le processus utilise et qui peut être paginée sur disque. Ce métrica est important pour surveiller l’utilisation de la mémoire des processus, ce qui est crucial pour l’optimisation de la performance et la gestion des ressources.

Récupérer les informations pour un seul processus

Lorsque nous utilisons PowerShell pour récupérer des informations sur un processus spécifique, nous avons quelques options de syntaxe. Get-Process -Name processName et Get-Process processName sont tous deux valides et obtiennent le même résultat, mais elles diffèrent légèrement dans leur structure syntaxique.

Get-Process -Name typora

OU

Get-Process typora

Lorsque nous exécutons Get-Process -Name typora ou Get-Process typora, PowerShell filtre les processus en cours d’exécution et retourne des informations spécifiquement pour le processus nommé typora. Ceci est particulièrement utile lorsque nous connaissons le nom exact du processus qui nous intéresse.

En arrière-plan, PowerShell parcourt la liste de tous les processus et fait correspondre le nom du processus avec typora. Si le processus est en cours d’exécution, ses détails sont affichés.

Sortie :

Obtenir-Processeur -Nom

Récupérer les informations pour plusieurs processus

Lorsque nous utilisons la cmdlet Get-Process dans PowerShell pour récupérer des informations pour plusieurs processus, comme dans la commande Get-Process NotePad, Outlook, nous profitons de la capacité de PowerShell à gérer plusieurs éléments simultanément.

Get-Process NotePad, Outlook

En exécutant Get-Process NotePad, Outlook, nous instruisons PowerShell de récupérer les détails pour plusieurs processus simultanément, dans ce cas NotePad et Outlook. Cette commande est utile lorsque nous devons surveiller plusieurs processus spécifiques.

PowerShell exécute une opération similaire à celle de la commande à un seul processus, mais pour chaque nom de processus spécifié, affichant toutes les correspondances.

Sortie :

Obtenir-Processeur Multiple

De plus, vous pouvez utiliser des caractères génériques pour le nom du processus.

Récupérer des objets de processus avec les attributs donnés

Nous pouvons afficher les informations de l’objet processus pour des attributs spécifiques lorsque nécessaire. Récupérons uniquement l’ID de Processus pour le processus NotePad.

(Get-Process NotePad).Id

Dans la commande (Get-Process NotePad).Id, nous obtenons d’abord l’objet de processus pour NotePad et ensuite accédons à sa propriété Id. Cette technique est utile lorsque nous ne sommes intéressés qu’à des informations spécifiques sur un processus, comme son ID de Processus.

Sortie :

Récupérer les objets de processus avec les attributs donnés

De même, nous pouvons récupérer l’attribut de temps CPU pour le processus NotePad, comme montré ci-dessous.

(Get-Process NotePad).CPU

De même, (Get-Process NotePad).CPU récupère les informations sur l’utilisation CPU pour le processus NotePad. Ces commandes démontrent comment nous pouvons extraire des points de données particuliers des objets processus.

Sortie :

obtenir le processeur de processus

Afficher le propriétaire du processus

La sortie par défaut de la commande Get-Process n’affiche pas l’attribut ProcessOwner. Mais cela peut être une information précieuse lorsque vous devez terminer un processus donné.

Nous pouvons utiliser le paramètre -IncludeUserName pour inclure l’attribut ProcessOwner dans la sortie.

Get-Process -Name notepad -IncludeUserName

La commande Get-Process -Name notepad -IncludeUserName élargit le comportement par défaut de Get-Process en incluant le nom d’utilisateur du propriétaire du processus dans la sortie. Le paramètre -IncludeUserName est essentiel lorsque nous devons identifier quel utilisateur exécute un processus spécifique, ce qui peut être critique dans des environnements multi-utilisateurs ou pour le dépannage.

Cette commande améliore notre visibilité sur les processus, en particulier en ce qui concerne leur propriété.

Sortie :

Get-Process InclureNomUtilisateur

Conclusion

Ce guide complet a éclairé le pouvoir et la polyvalence de PowerShell dans la gestion et la surveillance des processus système. Nous avons parcouru les applications pratiques de la cmdlet Get-Process, partant de la liste de tous les processus en cours d’exécution jusqu’à la localisation de processus spécifiques et l’extraction d’attributs particuliers des processus.

L’article a également montré l’habileté de PowerShell à gérer plusieurs processus simultanément et la facilité d’intégration d’informations centrées sur l’utilisateur, telles que la propriété des processus.

Cette intégration de la cmdlet Get-Process souligne la robustesse et l’adaptabilité de PowerShell dans le domaine de la gestion des processus, offrant un éventail d’outils aux administrateurs système pour surveiller, analyser et gérer efficacement les processus dans un environnement Windows.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.