PowerShell:使用过程ID获取进程的处理器利用率



我正在尝试使用ID获取进程的处理器利用率。当进程使用0%CPU时,我需要观察。问题是,我可以有多个进程具有相同的名称,所以使用

get-counter -Counter "Processor(<process Name>)% Processor Time"

因为它可能会捕获具有相同名称的不同进程。我也不能把它放在作业中,因为我试图捕获的进程是命令行的一个子进程,它会立即变为0%。

我希望我能够根据ID或其他一些不同的特征,仅获得一个进程的处理器百分比。

我在网上搜索了整个网站和普通网站,可以找到关于通过名称而不是进程ID找到它的文章。

所以我最终弄清楚了如何做到这一点。使用WMI对象"Win32_perfFormattedData_PerfProc_Process"我可以获得处理器时间和线程,然后使用"Win32_ComputerSystem"我可以计算(*(/

(((get-wmiobject -class Win32_PerfFormattedData_PerfProc_Process | where {$_.IDProcess -eq "<ID Number>"} | select idprocess, name, percentprocessortime, ThreadCount).percentprocessortime) * (Get-CimInstance Win32_ComputerSystem).NumberOfLogicalProcessors)/(get-wmiobject -class Win32_PerfFormattedData_PerfProc_Process | where { $_.idprocess -eq "<ID Number>" } | select idprocess, name, percentprocessortime, threadcount).Threadcount)

最新更新