Я пытаюсь получить среднюю загрузку ЦП в течение 30 минут. Если он превышает 90 процентов в течение 30 минут, я могу получать оповещения по электронной почте с помощью планировщика задач, монитора производительности и сценария PowerShell.
Я пытался, но получаю полную загрузку ЦП каждые 30 минут.
Монитор производительности>>Набор сборщиков данных>Определяется пользователем>Производительность процессора. Здесь я добавил производительность процессора, в которой счетчик производительности "\Process(_Total)\%Processor Time", так как я здесь выдает предупреждение 4 cpu, когда установлено значение 380 и интервал 30 минут.
Я создал задачу в планировщике задач и добавил действие> запустить программу> программа/скрипт «путь к powershell.exe> добавить аргумент» -файл script.ps1





Приведенный ниже сценарий даст вам среднее время процессора более 30 минут. Затем вы можете заставить сценарий отправить электронное письмо, если среднее значение процессора за 30-минутный период превышает 90. Я прокомментировал код для облегчения понимания.
Resizable array you can add items to
[System.Collections.ArrayList]$List = @()
#Counter which is increased by 1 after getting each counter
$Counter = 0
#As long as the counter is less than the below value... (1800 = 30 minutes)
While ($Counter -lt 10)
{
#Get 1 counter per second
$CpuTime = $(Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 1 -MaxSamples 1).CounterSamples.CookedValue
#Add the CPU total time to the list
$List.Add($CpuTime)
#Increase the counter by 1. As we are getting one sample per second, this will be increased by one each second
$Counter++
}
#Get the minimum, average and maximum of the values stored in the list
$Measurements = $List | Measure-Object -Minimum -Average -Maximum
#Email bit. To befinished by you
If ($Measurements.Average -gt 90)
{
Send-MailMessage ......
}
Надеюсь это поможет.
Могу ли я заменить $Array -> $List?
О, да, мой плохой. Пока я писал это, я изменил имя переменной с $Array на $List, так что да, просто замените $Array на $List. Я отредактирую свой ответ.
Если мой ответ был полезен, пожалуйста, проголосуйте за него, или, если он ответил на ваш вопрос, отметьте его как правильный ответ. Оба, чтобы помочь людям, смотрящим на это в будущем.
Можете ли вы поделиться тем, что вы пробовали до сих пор?