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
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 *
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
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
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"
Para obter a contagem de handles, execute o comando abaixo:
Get-Counter "\Process(*)\Handle Count"
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.
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