Comment trouver l'utilisation du CPU et de la RAM en utilisant PowerShell
-
Comment trouver l’utilisation du CPU et de la RAM en utilisant PowerShell avec
Get-Counter
-
Comment trouver l’utilisation du CPU et de la RAM en utilisant PowerShell avec
Get-WmiObject
-
Comment trouver l’utilisation du CPU et de la RAM en utilisant PowerShell avec
Get-Process
- Conclusion

À mesure que la technologie avance, le besoin d’une surveillance efficace des systèmes devient de plus en plus crucial. Les administrateurs Windows et les utilisateurs se retrouvent souvent à rechercher des moyens rapides et efficaces d’évaluer l’utilisation du CPU et de la RAM pour un performance système optimale sur leurs machines Windows.
Dans cet article, nous allons explorer la puissance de PowerShell, un langage de script polyvalent dans l’environnement Windows, et découvrir comment il peut être utilisé pour trouver et surveiller l’utilisation du CPU et de la RAM de manière transparente.
En utilisant les capacités de PowerShell, les utilisateurs peuvent obtenir des informations en temps réel sur l’utilisation de la mémoire de leur système, leur permettant de prendre des décisions éclairées et de garantir une expérience informatique fluide.
Comment trouver l’utilisation du CPU et de la RAM en utilisant PowerShell avec Get-Counter
PowerShell, avec ses cmdlets puissants, offre une solution robuste pour récupérer les données de performance en temps réel. L’une de ces cmdlets, Get-Counter
, fournit un moyen polyvalent et efficace d’accéder à ces informations.
La cmdlet Get-Counter
nous permet de récupérer des données sur les compteurs de performance à partir de machines locales ou distantes. Pour surveiller l’utilisation du CPU et de la RAM, nous pouvons utiliser des chemins spécifiques de compteurs de performance.
Voici la syntaxe de base :
Get-Counter -Counter "\CounterPath"
Pour l’utilisation du CPU, le chemin du compteur est '\Processor(_Total)\% Processor Time'
, et pour l’utilisation de la RAM, il est '\Memory\Available MBytes'
.
Exemple de code PowerShell pour trouver l’utilisation du CPU et de la mémoire à l’aide de Get-Counter
Plongeons dans un exemple de code complet qui démontre comment utiliser Get-Counter
pour surveiller à la fois l’utilisation du CPU et de la RAM :
# PowerShell get memory usage
Get-Counter '\Processor(_Total)\% Processor Time' -Continuous | ForEach-Object {
$cpuUsage = $_.CounterSamples.CookedValue
Write-Host "Current CPU Usage: $cpuUsage%"
}
Get-Counter '\Memory\Available MBytes' -Continuous | ForEach-Object {
$ramUsage = $_.CounterSamples.CookedValue
Write-Host "Available RAM: ${ramUsage}MB"
}
Analysons chaque section du code pour comprendre sa fonctionnalité.
Surveillance de l’utilisation du CPU :
Get-Counter '\Processor(_Total)\% Processor Time' -Continuous | ForEach-Object {
$cpuUsage = $_.CounterSamples.CookedValue
Write-Host "Current CPU Usage: $cpuUsage%"
}
Dans la première partie, nous utilisons Get-Counter
pour récupérer des données en temps réel sur le pourcentage de temps total du processeur utilisé. Le chemin de compteur spécifié, '\Processor(_Total)\% Processor Time'
, cible l’utilisation globale du CPU sur tous les cœurs.
Le paramètre -Continuous
garantit que la commande s’exécute en continu, fournissant des mises à jour en direct, et ne s’arrête que lorsqu’CTRL+C est pressé.
La sortie de Get-Counter
est ensuite transmise à une boucle ForEach-Object
. Pour chaque échantillon de compteur reçu, le script extrait la valeur traitée (CookedValue
), représentant le pourcentage actuel d’utilisation du CPU.
Cette valeur est stockée dans la variable $cpuUsage
, et un message affichant l’utilisation actuelle du CPU est imprimé sur la console à l’aide de la fonction PowerShell Write-Host
.
Sortie du code :
Surveillance de l’utilisation de la mémoire (RAM) :
Get-Counter '\Memory\Available MBytes' -Continuous | ForEach-Object {
$ramUsage = $_.CounterSamples.CookedValue
Write-Host "Available RAM: ${ramUsage}MB"
}
La deuxième partie du script se concentre sur la surveillance du pourcentage de mémoire. Comme pour la section CPU, nous utilisons Get-Counter
avec le chemin du compteur '\Memory\Available MBytes'
pour récupérer en continu des données sur la mémoire disponible en mégaoctets.
Le paramètre -Continuous
assure une surveillance continue.
Encore une fois, la sortie est traitée dans une boucle ForEach-Object
. Pour chaque échantillon de compteur reçu, le script extrait la valeur traitée représentant les octets disponibles dans la RAM, qui est stockée dans la variable $ramUsage
.
La dernière étape consiste à afficher les informations de RAM disponible sur la console à l’aide de Write-Host
.
Sortie du code :
Cet affichage en temps réel des informations est inestimable pour les administrateurs système et les utilisateurs, leur permettant d’identifier rapidement et de résoudre les problèmes de performance. Get-Counter
simplifie le processus de surveillance de l’utilisation du CPU et de la RAM, ce qui en fait un outil essentiel dans l’arsenal de PowerShell.
Comment trouver l’utilisation du CPU et de la RAM en utilisant PowerShell avec Get-WmiObject
En plus de la cmdlet Get-Counter
, PowerShell offre un autre outil puissant, Get-WmiObject
, pour collecter des informations système, y compris l’utilisation du CPU et de la RAM.
La cmdlet Get-WmiObject
nous permet d’accéder aux classes Windows Management Instrumentation (WMI), fournissant une mine d’informations sur le système. Pour surveiller l’utilisation du CPU et de la mémoire physique, des classes et propriétés WMI spécifiques sont interrogées.
La syntaxe de base est la suivante :
Get-WmiObject -Class WMI_Class | Select-Object Property1, Property2, ...
Pour l’utilisation du CPU, nous utilisons la classe Win32_Processor
, et pour l’utilisation de la RAM ou de la mémoire physique, la classe Win32_OperatingSystem
.
Exemple de code PowerShell pour trouver l’utilisation du CPU et de la RAM en utilisant Get-WmiObject
Explorons un exemple de code complet qui démontre comment utiliser Get-WmiObject
pour surveiller à la fois l’utilisation du CPU et de la RAM :
# PowerShell get memory usage of all the processes
$cpuObject = Get-WmiObject -Class Win32_Processor
$cpuLoadPercentage = $cpuObject.LoadPercentage
Write-Host "CPU Load Percentage: $cpuLoadPercentage"
$ramObject = Get-WmiObject -Class Win32_OperatingSystem
$ramUsageGB = [math]::Round(($ramObject.TotalVisibleMemorySize - $ramObject.FreePhysicalMemory) / 1GB, 2)
Write-Host "Available RAM: ${ramUsageGB}GB"
Analysons chaque section du script PowerShell ci-dessus pour comprendre sa fonctionnalité.
Surveillance de l’utilisation du CPU :
$cpuObject = Get-WmiObject -Class Win32_Processor
$cpuLoadPercentage = $cpuObject.LoadPercentage
Write-Host "CPU Load Percentage: $cpuLoadPercentage"
Ici, le script utilise d’abord Get-WmiObject
pour interroger des informations à partir de la classe Win32_Processor
, qui contient des détails sur le processeur du système. Les informations obtenues sont stockées dans la variable $cpuObject
.
Ensuite, le script extrait la propriété LoadPercentage
de $cpuObject
, représentant le pourcentage de charge actuelle du CPU. Cette valeur est ensuite stockée dans la variable $cpuLoadPercentage
.
Enfin, un message affichant le pourcentage de charge du CPU est imprimé sur la console à l’aide de Write-Host
.
Sortie du code :
Surveillance de l’utilisation de la mémoire (RAM) :
$ramObject = Get-WmiObject -Class Win32_OperatingSystem
$ramUsageGB = [math]::Round(($ramObject.TotalVisibleMemorySize - $ramObject.FreePhysicalMemory) / 1GB, 2)
Write-Host "Available RAM: ${ramUsageGB}GB"
Dans la section de surveillance de la RAM, le script utilise Get-WmiObject
pour récupérer des informations à partir de la classe Win32_OperatingSystem
, qui contient diverses propriétés liées au système d’exploitation, y compris des détails relatifs à la mémoire. Les informations acquises sont stockées dans la variable $ramObject
.
Ensuite, le script calcule la RAM disponible en gigaoctets en soustrayant la mémoire physique libre (FreePhysicalMemory
) de la mémoire physique totale ou de la taille totale de mémoire visible (TotalVisibleMemorySize
). Le résultat est ensuite arrondi à deux décimales à l’aide de [math]::Round
pour assurer une sortie plus propre.
La valeur de RAM disponible en gigaoctets est stockée dans la variable $ramUsageGB
. Enfin, un message affichant la RAM disponible est imprimé sur la console à l’aide de Write-Host
.
Sortie du code :
Ces informations, récupérées à l’aide de la cmdlet Get-WmiObject
, fournissent des informations précieuses sur la performance du système, permettant aux utilisateurs de surveiller efficacement l’utilisation des ressources et de prendre des décisions éclairées pour l’optimisation du système. La simplicité et la clarté du script en font un outil polyvalent pour les administrateurs et les utilisateurs.
Comment trouver l’utilisation du CPU et de la RAM en utilisant PowerShell avec Get-Process
Dans le cadre de notre exploration de la surveillance de la performance système avec PowerShell, nous allons maintenant nous concentrer sur la cmdlet Get-Process
. Contrairement à Get-Counter
et Get-WmiObject
, Get-Process
fournit des informations sur les processus en cours d’exécution sur la machine locale, nous permettant d’extraire des détails sur l’utilisation du CPU et de la mémoire.
La cmdlet Get-Process
récupère des informations sur les processus actuellement en cours d’exécution sur un ordinateur local ou distant. Pour surveiller l’utilisation du CPU et de la RAM, nous allons filtrer et extraire les informations pertinentes de la sortie.
La syntaxe de base est la suivante :
Get-Process -Name "ProcessName" | Select-Object Property1, Property2, ...
Pour l’utilisation du CPU, nous allons nous concentrer sur la propriété CPU
, et pour l’utilisation de la RAM, la propriété WorkingSet
.
Exemple de code PowerShell pour trouver l’utilisation du CPU et de la RAM en utilisant Get-Process
Explorons un exemple de code complet qui démontre comment utiliser Get-Process
pour surveiller à la fois l’utilisation du CPU et de la RAM :
# PowerShell get memory usage
$cpuProcesses = Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
ForEach ($process in $cpuProcesses) {
$processName = $process.ProcessName
$cpuUsage = $process.CPU
Write-Host "Process: $processName, CPU Usage: $cpuUsage%"
}
$ramProcesses = Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 5
ForEach ($process in $ramProcesses) {
$processName = $process.ProcessName
$ramUsageMB = [math]::Round($process.WorkingSet / 1MB, 2)
Write-Host "Process: $processName, RAM Usage: ${ramUsageMB}MB"
}
Tout comme les exemples précédents, ce script PowerShell est également organisé en deux sections : l’une axée sur l’utilisation du CPU et l’autre sur l’utilisation de la RAM. Analysons chaque section du code.
Surveillance de l’utilisation du CPU :
$cpuProcesses = Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
ForEach ($process in $cpuProcesses) {
$processName = $process.ProcessName
$cpuUsage = $process.CPU
Write-Host "Process: $processName, CPU Usage: $cpuUsage%"
}
Dans la première section de code, le script commence par utiliser Get-Process
pour récupérer des informations sur tous les processus en cours d’exécution sur le système. La sortie est ensuite triée dans l’ordre décroissant en fonction de l’utilisation du CPU à l’aide de Sort-Object
.
Le Select-Object -First 5
garantit que seuls les 5 premiers processus avec la plus haute utilisation du CPU sont considérés. Les processus résultants sont stockés dans la variable $cpuProcesses
.
Une boucle ForEach
est utilisée pour itérer à travers chaque objet processus dans $cpuProcesses
. Pour chaque processus, le script extrait le nom du processus (ProcessName
) et l’utilisation du CPU (CPU
).
Ces informations sont ensuite affichées sur la console à l’aide de Write-Host
, présentant le nom du processus ainsi que son pourcentage d’utilisation du CPU correspondant.
Sortie du code :
Surveillance de l’utilisation de la mémoire (RAM) :
$ramProcesses = Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 5
ForEach ($process in $ramProcesses) {
$processName = $process.ProcessName
$ramUsageMB = [math]::Round($process.WorkingSet / 1MB, 2)
Write-Host "Process: $processName, RAM Usage: ${ramUsageMB}MB"
}
Dans la deuxième section du code, une approche similaire est adoptée. Encore une fois, Get-Process
est utilisé pour rassembler des informations sur tous les processus en cours d’exécution.
La sortie est ensuite triée en fonction de l’utilisation de la RAM (WorkingSet
) dans l’ordre décroissant, et seuls les 5 processus en cours d’exécution sont sélectionnés. Les processus résultants sont stockés dans la variable $ramProcesses
.
Une boucle ForEach
itère à travers chaque processus dans $ramProcesses
. Pour chaque processus, le script extrait le nom du processus et calcule l’utilisation de la RAM en mégaoctets.
Le calcul implique de diviser la taille du working set par 1 mégaoctet et d’arrondir le résultat à deux décimales à l’aide de [math]::Round
. Les informations sont ensuite affichées sur la console à l’aide de Write-Host
, présentant le nom du processus ainsi que son utilisation de la RAM en mégaoctets.
Sortie du code :
Ce script fournit une approche dynamique pour surveiller l’utilisation du CPU et de la mémoire, en se concentrant sur les processus les plus consommateurs. En tirant parti des capacités de Get-Process
, les administrateurs et les utilisateurs peuvent obtenir des informations sur les activités intensives en ressources sur leurs systèmes.
Conclusion
Surveiller l’utilisation du CPU et de la RAM est essentiel pour maintenir un environnement informatique sain et réactif. PowerShell, avec son riche ensemble de cmdlets, fournit des outils puissants comme Get-Counter
, Get-WmiObject
et Get-Process
pour simplifier ce processus.
Que vous préfériez des mises à jour en temps réel, des informations détaillées sur des classes WMI, ou des informations sur des processus individuels, PowerShell offre des solutions flexibles pour répondre à divers besoins de surveillance. En incorporant ces techniques dans votre boîte à outils de gestion système, vous pouvez facilement rester informé sur l’utilisation du CPU et de la RAM, permettant des interventions opportunes et une optimisation proactive du système.