PowerShell: получить загрузку процессора с помощью идентификатора процесса - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь получить процессор использования процесса с использованием идентификатора. Мне нужно смотреть, когда процесс использует 0% процессора. Проблема в том, что у меня может быть несколько процессов с одним и тем же именем, поэтому я использую

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

, потому что он потенциально может перехватить другой процесс с тем же именем. Я также не могу поместить это в работу, потому что процесс, который я пытаюсь захватить, является подпроцессом командной строки, который мгновенно переходит на 0%.

Я надеюсь, что смогу получить процент процессора только для одного процесса на основе идентификатора или какой-либо другой отличительной характеристики.

Я выполнял поиск в Интернете по всему этому сайту и в Интернете и могу найти статьи о том, как найти его по имени, но не по идентификатору процесса.

1 Ответ

0 голосов
/ 06 ноября 2019

Итак, я понял, как это сделать. Используя объект 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...