Execute o script ps1 quando o limite de CPU for atingido

2

Estou procurando uma função semelhante ao Debug Diagnostics Collector.

Onde você pode configurar um acionador de desempenho (ou qualquer contador) (por exemplo, acima de 50% da CPU durante 50 segundos). Uma vez que a condição de um gatilho é satisfeita, eu gostaria de executar um script PS1.

Alguém já fez algo semelhante?

    
por Luke 29.05.2014 / 13:02

1 resposta

1

Não tenho certeza sobre o aspecto "mais de 50 segundos", mas você pode pesquisar para ver se sua CPU está acima de um certo limite.

Apenas um esboço rápido no 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

você pode executar isso em um segmento ou criar um plano de fundo para o processo também na máquina em que está interessado.

    
por 29.05.2014 / 14:47