Как получить максимальный процент загрузки процессора из 5 испытаний - PullRequest
0 голосов
/ 26 сентября 2019

Я новичок в Powershell и борюсь с синтаксисом.Я хочу написать скрипт, который дает мне максимальную загрузку ЦП процессом из 5 попыток.

$properties=@(
@{Name="Process Name"; Expression = {$_.name}},
@{Name="CPU (%)"; Expression = {$_.PercentProcessorTime}},    
@{Name="Memory (MB)"; Expression = {[Math]::Round(($_.workingSetPrivate / 1mb),2)}}
)
Get-WmiObject -class Win32_PerfFormattedData_PerfProc_Process | Select-Object $properties

Я должен запустить вышеуказанный процесс 5 раз и выбрать топ-процесс, который максимально использует ЦП.

1 Ответ

0 голосов
/ 26 сентября 2019

Это должно дать вам то, что вы хотите (не забудьте также включить ваше определение $properties):

1 .. 5 |
    ForEach-Object {
        Get-WmiObject -class Win32_PerfFormattedData_PerfProc_Process
    } | Where-Object Name -notin '_Total','Idle' |
            Sort-Object -Property 'PercentProcessorTime' -Descending |
                Select-Object -First 1 -Property $properties

1 .. 5 - это оператор диапазона , который генерирует наборчисел 1,2,3,4,5.Это просто быстрый взлом для запуска ForEach-Object 5 раз.

Where-Object Name -notin '_Total','Idle' исключает некоторые «процессы», которые всегда имеют высокие значения, но вряд ли будут тем, что вы ищете.Как правило, более эффективно обновить вызов до Get-WmiObject, чтобы исключить их на этом этапе, но для ясности я выбрал эту технику.

Sort-Object -Property 'PercentProcessorTime' -Descending берет все показания исортирует их по порядку от наибольшего значения ЦП к наименьшему.

Select-Object -First 1 -Property $properties Выбирает только первый объект в отсортированном списке (т. е. объект с наибольшим значением).Обратите внимание, что лучше делать это последним, а не после каждого вызова Get-WmiObject, так как он создает новый пользовательский объект для каждого возвращаемого WMI, почти все из которых мы отбрасываем далее по линии - это эффективнее сделать 'дублирование "только для конечного объекта, который мы выбираем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...