Выполнить скрипт ps1 при достижении порогового значения ЦП
Я ищу функцию, похожую на Коллектор отладочной диагностики.
Где вы можете настроить триггер производительности (или любой счетчик) (например, более 50% ЦП в течение 50 секунд). Как только условие триггера выполнено, я хотел бы запустить скрипт PS1.
Кто-нибудь когда-нибудь делал что-то подобное?
1 ответ
Решение
Не уверен насчет аспекта "более 50 секунд", но вы можете опросить, чтобы увидеть, превышает ли ваш процессор определенный предел.
Просто быстрый набросок в powershell...
# checks cpu threshold and runs script in $scriptName variable
function CPUthreshold
{
# mandatory single variable in function for script name
Param(
[Parameter(Mandatory=$true)]
[string]$scriptName
)
# cpu percentage limit
$limit = 50
# time to poll CPU limit in seconds
$pollTimeSec = 60
# check limit forever!
while($true){
# get the win32_processor object to get stats on the CPU
$cpu = Get-WmiObject win32_processor
# check if the CPU is over our limit
if ($cpu.LoadPercentage -gt $limit)
{
# call your script here!
& $scriptName
}
# wait again until the next poll
Start-Sleep -s $pollTimeSec
}
}
# call function with script name you want to run
CPUthreshold .\Hello-World.ps1
Вы можете запустить это в потоке или в фоновом режиме, а также на интересующей вас машине.