Como obter uma lista de processos semelhante ao Gerenciador de Tarefas no PowerShell

Como obter uma lista de processos semelhante ao Gerenciador de Tarefas no PowerShell

Este artigo ilustra como podemos obter métricas de desempenho de nosso computador local no PowerShell. Usamos o cmdlet Get-Counter no PowerShell para buscar os dados dos contadores de desempenho do programa de monitoramento de desempenho no Windows.

Use Get-Counter para Obter uma Lista de Processos Semelhante ao Gerenciador de Tarefas no PowerShell

Como mencionamos anteriormente, o cmdlet Get-Counter nos permitirá listar todos os contadores de desempenho disponíveis e monitorar e exibir dados dos contadores. O cmdlet funciona tanto para sistemas locais quanto remotos.

O cmdlet Get-Counter mostrará por padrão um conjunto de contadores em um intervalo de um segundo. Como a maioria dos conjuntos de contadores (métricas) é protegida por ACL (listas de controle de acesso), é aconselhável executar o PowerShell como administrador.

Get-Counter

obter-contador

Os contadores padrão listados dizem respeito à rede, processador e memória. Ele também lista alguns dados sobre o disco rígido.

Para obter uma lista de todos os conjuntos de contadores em um computador local, execute o comando abaixo.

Get-Counter -ListSet *

conjuntos de contador

Adicionar o parâmetro ListSet e um asterisco (*) instrui o cmdlet Get-Counter a buscar uma lista de todos os contadores configurados em nosso computador. Note o ponto (.) na coluna MachineName; isso representa nosso computador local.

Podemos escolher um conjunto de contadores e especificar o intervalo de amostragem e o número máximo de amostras. O exemplo abaixo buscará métricas de todos os processadores em nosso computador local.

O cmdlet buscará dados em um intervalo de três segundos e exibirá quatro amostras.

Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 3 -MaxSamples 4

métricas do processador

No comando acima, usamos o parâmetro Counter para definir o caminho do contador \Processor(_Total)\% Processor Time. Em seguida, definimos um intervalo de três segundos com o parâmetro SampleInterval para o contador especificado.

O parâmetro MaxSamples indica quatro como o número máximo de vezes que verificamos o contador. Se você quiser buscar amostras contínuas de um contador específico, use o parâmetro -Continuous conforme ilustrado abaixo:

Get-Counter -Counter "\Processor(_Total)\% Processor Time" -Continuous

Isso buscará continuamente amostras em um intervalo de um segundo até que você interrompa a execução. Você pode fazer isso pressionando CTRL+C.

Você pode especificar os intervalos com o parâmetro SampleInterval.

Você pode classificar a lista em ordem alfabética, conforme mostrado abaixo:

Get-Counter -ListSet * |
  Sort-Object -Property CounterSetName |
    Format-Table CounterSetName, CounterSetType -AutoSize

conjuntos de contadores alfabéticos

Os resultados são enviados para o cmdlet Sort-Object. O parâmetro Property dita que os objetos CounterSet devem ser ordenados por CounterSetName.

Os resultados são então passados para o Format-Table. O parâmetro AutoSize minimiza a truncagem ajustando a largura da coluna.

Se você quiser obter uma lista de processos semelhante àqueles exibidos no gerenciador de tarefas do Windows, você pode usar o comando abaixo:

Get-Counter "\Process(*)\Working Set - Private"

conjunto de contenção para processos em execução

Para obter a contagem de handles, execute o comando abaixo:

Get-Counter "\Process(*)\Handle Count"

contagem de manequins

Em resumo, o cmdlet Get-Counter é o comando ideal quando queremos monitorar as métricas de desempenho de diferentes conjuntos de contadores em sistemas locais e remotos.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn