2016-07-14 21 views

Antwort

3

Es kann mit dem folgenden Powershell-Befehl erfolgen werden:

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

Auch können Sie eine Datei get_cpu_usage.ps1 mit dem Inhalt aufgerufen erstellen :

while ($true) 
{ 
    $cores = (Get-WmiObject -Query "select Name, PercentProcessorTime from Win32_PerfFormattedData_PerfOS_Processor") 
    $cores | foreach-object { write-host "$($_.Name): $($_.PercentProcessorTime)" }; 
    Start-Sleep -m 200 
} 

führen sie es dann mit:

powershell -executionpolicy bypass "get_cpu_usage.ps1" 
2

Alternativ können Sie den Befehl Get-Counter verwenden.

Zum Beispiel:

Get-Counter -Counter '\Processor(*)\% Processor Time' -Computer $desktop | select -ExpandProperty CounterSamples 

Von meinen Tests ist es etwa 4-mal schneller (atleast auf meinem Rechner) als WMI abfragen.

EDIT: Nach ein paar mehr, wiederholte Verwendungen der Abfrage zu testen sind schneller (Mittelwert von 284 ms bekam), weil Get-Counter Bedürfnisse mindestens 1 Sekunde, um die Proben zu erhalten.

+0

Es bezieht sich intern auf WMI. –