Я гуглял, пытаясь выяснить, есть ли умный способ получить имя процесса, который использует процессор с процентом выше X%.Например, в нашей среде существуют определенные процессы, которые в конечном итоге загружают процессор, и в большинстве случаев это так плохо, что мы не можем подключиться к серверу, чтобы узнать, какой это сервер.
В принципе, вот как я представляю, как это работает: Если функция, которая находит процесс с более чем 70% загрузкой ЦП, будет отправлено SMS-сообщение нужным получателям, которое включает имя сервераи имя процесса.
СМС-часть, которую я разобрался, однако CPUUsage проблематичен.Кажется, что оператор if всегда заканчивается записью «Нет процессов с загрузкой ЦП выше 1%», даже если они есть.Кроме того, как мне получить имя процесса в функции, которая отправляет SMS?
function CPUUsage ()
{
$process = get-process
foreach ($pro in $process){
$name = $pro.ProcessName
$CpuCores = (Get-WmiObject -Class Win32_Processor).NumberOfCores
$CpuValue = ((Get-Counter "\Process($name)\% Processor Time").CounterSamples.CookedValue)/$CpuCores
$percent = [Decimal]::Round($CpuValue, 3)
if($percent -gt 1)
{
Write-Host $name
} else {
Write-Host "There are no processes above 1% CPU usage"
}
}
}