2016-07-14 84 views

回答

3

它可以使用下面的PowerShell命令來完成:

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

你也可以創建一個與內容稱爲get_cpu_usage.ps1文件:

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 
} 

然後運行它使用:

powershell -executionpolicy bypass "get_cpu_usage.ps1" 
2

作爲替代方案,您可以使用Get-Counter命令。

例如:

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

從我的測試中它的速度更快,大約4倍(ATLEAST在我的機器上)不查詢WMI。

編輯: 測試查詢更多一些,反覆使用後會更快(有平均的284 ms),因爲至少1秒Get-Counter需要獲得樣品。

+0

它在內部引用WMI本身。 –