有它的工作原理确定以下,但与发行在PowerShell中:PowerShell进程CPU检查
$FileName = "E:\Work\ps\Inventory.htm"
$serverlist = "E:\Work\ps\Monitored_computers.txt"
foreach ($server in Get-Content $serverlist)
{
$servern=$server.split(",")[0]
$ip=$server.split(",")[1]
$cpu = gwmi Win32_PerfFormattedData_PerfProc_Process -Computer $servern -filter "Name <> '_Total' and Name <> 'Idle'" | Sort-Object PercentProcessorTime -Descending | where { $_.PercentProcessorTime -gt 0 }| select -First 1
if ($cpu.PercentProcessorTime -ge "92") {
write-host $servern ' ' $cpu.Name ' ' $cpu.PercentProcessorTime
}
}
我已经看到在PowerShell中一些其他的代码,它接受一个平均水平,但似乎像一个“平均平均“ - 这是没有意义的。而且,这是一个整体的CPU使用率现在
gwmi win32_processor | Measure-Object -property LoadPercentage -Average | Foreach {$_.Average}
,如果我们可以采取同样的逻辑和适用于我们的工艺问题:
gwmi Win32_PerfFormattedData_PerfProc_Process | Sort-Object PercentProcessorTime -Descending | where { $_.PercentProcessorTime -gt 0 } | select -First 1 | Measure-Object -property PercentProcessorTime -Average | Foreach {$_.PercentProcessorTime}
什么我试图问的是:我得到的CPU百分比,这似乎是一个“时间点”。如何找到真正的CPU百分比?这就是我指出平均水平的原因。我真的想要解决这个问题的“时间点”部分。
当我们多次看到服务器上的每个进程的CPU数量很高时,我们登录到服务器并且高CPU已经平息。这并不是说每次都是这样,但我们知道,有时CPU会尖峰化,然后安静下来。
感谢您的任何见解!
你的问题是什么?你在PowerShell中提到了一个问题,但不要解决问题。 –