Выполнить скрипт 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

Вы можете запустить это в потоке или в фоновом режиме, а также на интересующей вас машине.

Другие вопросы по тегам