Я использую командлет Get-WmiObject для мониторинга средней загрузки ЦП на серверах без установки PowerShell из-за требований безопасности.
$CPU = Get-WmiObject Win32_Processor -computername $computerName | Measure-Object -property LoadPercentage -Average | Select Average
$CPULoad = $($CPU.average)
if ( $CPULoad -ge $ThresholdCPU ){
Write-output "High CPU usage: $CPULoad % on $computerName"
}
Else {
Write-output "CPU usage on $computerName is normal: $CPULoad %"
}
Мой скрипт работает правильно, когда используется текущая загрузка ЦПпревышает порог ЦП, который я установил вручную.
Но я сталкиваюсь с множеством ложных предупреждений из-за скачков использования ЦП на удаленных серверах.
После прочтения документациикомандлет, я обнаружил, что в отличие от командлета Get-Counter, Get-WmiObject не имеет какого-либо свойства SampleInterval.
Есть ли способ выполнить это с помощью Get-WmiObject, поэтому критерии ifбудет верно только после 3 действительных образцов?