2017-07-09 2 views
1

Je veux lire l'utilisation de tous les cœurs avec powershell. J'ai essayé la commande suivanteWin32_PerfFormattedData_PerfOS_Processor a seulement un seul support de processeur?

(Get-WmiObject -Query "select Name, PercentProcessorTime from Win32_PerfFormattedData_PerfOS_Processor") | foreach-object { write-host "$($_.Name): $($_.PercentProcessorTime)" }; 

mais cela ne renvoie que l'utilisation des cœurs logiques de cpu0. Je n'ai pas trouvé un moyen de l'obtenir aussi pour le deuxième processeur dans le système. Quelqu'un a-t-il une solution pour cela?

Dans mon exemple, j'ai deux Intel Xeon E5-2697 v4 avec un total de 72 cœurs logiques. Le Gestionnaire des tâches me montre tous les cœurs avec une utilisation correcte, mais la commande ci-dessus ne renvoie que 36. J'ai joint une image qui montre perfmon avec seulement 36 cœurs perfmon image.

+0

Vous n'avez pas besoin d'itérer dans une boucle foreach. Sélectionnez directement les valeurs des propriétés correspondantes. 'Get-WmiObject Win32_PerfFormattedData_PerfOS_Processor | select PSComputerName, Name, PercentProcessorTime' –

Répondre

0

Pas besoin d'itération

Get-WmiObject Win32_PerfFormattedData_PerfOS_Processor | select PSComputerName,Name,PercentProcessorTime 

devrait fonctionner.

+0

N'a rien à voir avec ma question, mais merci. –