5

Я хочу получить значение, которое отображается в диспетчере задач для любого процесса в столбце ЦП в PowerShell.

Я пытался с помощью

Get-Process ProcessName | Select-Object -Property CPU

но это только возвращает потраченное время.

2 ответа2

1

Попробуйте использовать команду Get-Counter которая извлекает данные из монитора производительности системы. Для вашего примера это будет выглядеть так:

# ~> Get-Counter "\Process(ProcessName*)\% Processor Time" | select -expand countersamples 

Пример с использованием Chrome:

# ~> Get-Counter "\Process(chrome*)\% Processor Time" | select -expand countersamples 

Path                                            InstanceName      CookedValue
----                                            ------------      -----------
\\machinename\process(chrome#7)\% processor time chrome                      0
\\machinename\process(chrome#6)\% processor time chrome                      0
\\machinename\process(chrome#5)\% processor time chrome                      0
\\machinename\process(chrome#4)\% processor time chrome                      0
\\machinename\process(chrome#3)\% processor time chrome                      0
\\machinename\process(chrome#2)\% processor time chrome                      0
\\machinename\process(chrome#1)\% processor time chrome                      0
\\machinename\process(chrome)\% processor time   chrome       3.10141153081511
0

Вот несколько копируемых примеров процессов фильтрации с Get-Counter и Get-WmiObject .

Например, чтобы получить 10 лучших процессов по загрузке процессора:

powershell "(Get-Counter '\Process(*)\% Processor Time').Countersamples | Sort cookedvalue -Desc| Select -First 10 instancename, cookedvalue"

Или с более чистым форматированием:

powershell "(Get-Counter '\Process(*)\% Processor Time').Countersamples | Sort cookedvalue -Desc | Select -First 10 instancename, @{Name='CPU %';Expr={[Math]::Round($_.CookedValue)}}"


powershell "gwmi Win32_PerfFormattedData_PerfProc_Process | Sort PercentProcessorTime -desc | Select -first 7 Name, PercentProcessorTime, IOReadBytesPersec, IOWriteBytesPersec, WorkingSet | ft -autoformat"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .