Como obter a lista de processos em execução no PowerShell

  1. Use o cmdlet Get-Process para mostrar uma lista de processos em execução no PowerShell
  2. Conclusão
Como obter a lista de processos em execução no PowerShell

Este artigo explora a utilização do PowerShell para monitoramento de processos, enfatizando o cmdlet Get-Process. O cmdlet Get-Process, um elemento básico na gestão de processos, oferece uma visão abrangente dos processos em execução em uma máquina Windows, exibindo informações críticas como IDs de processo, nomes, uso de memória e consumo de CPU.

O artigo desdobra metódicamente a sintaxe e os parâmetros do cmdlet, atendendo a consultas de processos gerais e específicas.

Use o cmdlet Get-Process para mostrar uma lista de processos em execução no PowerShell

Existem mais de 200 cmdlets disponíveis no ambiente PowerShell. Cada cmdlet é responsável por realizar uma função específica.

O Get-Process é um dos cmdlets frequentemente utilizados que ajuda a recuperar a lista de processos em execução na máquina Windows.

Este cmdlet fornece informações úteis relacionadas a cada processo, como ID do processo, nome, uso de memória, etc. Além disso, ele mostra uma instantânea dos processos em execução do sistema.

Sintaxe:

Get-Process [[-ProcessName] string[]] [-NameOfTheComputer string[]]
[-FileVersionInfo] [-Module] [CommonParameters]

Get-Process -processID Int32[] [-ComputerName string[]]
[-FileVersionInfo] [-Module] [CommonParameters]

Get-Process -ProcessInputObject Process[] [-ComputerName string[]]
[-FileVersionInfo] [-Module] [CommonParameters]

Parâmetros:

  • ProcessName string[]: Especifica uma matriz de nomes de processos a serem recuperados. Este parâmetro aceita caracteres curinga para correspondência de padrões. Se este parâmetro for omitido, o Get-Process recupera todos os processos.
  • ProcessId Int32[]: Especifica os IDs dos processos a serem recuperados. Este parâmetro permite que você direcione processos específicos diretamente.
  • InputObject Process[]: Especifica uma matriz de objetos de processo. Este parâmetro permite que você transfira objetos de processo para o Get-Process.
  • NameOfTheComputer string[]: Indica o(s) nome(s) dos computadores em que executar o comando. Se este parâmetro for omitido, o Get-Process recupera processos do computador local.
  • FileVersionInfo: Adiciona informações da versão do arquivo aos objetos de processo. Isso é útil quando você deseja detalhes sobre o arquivo executável do processo, como versão, nome do produto, etc.
  • Module: Inclui os módulos (DLLs e arquivos executáveis) que estão carregados por cada processo. Isso é útil para uma análise mais detalhada, como verificar quais DLLs estão carregadas por um processo.
  • [CommonParameters]: Estes são os parâmetros que todos os cmdlets suportam, como -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutVariable, -OutBuffer e -PipelineVariable.

Os parâmetros são opcionais para o cmdlet Get-Process, e você pode usar esses parâmetros com base em suas necessidades.

Exibir Todos os Processos em Execução

Podemos usar diretamente o comando Get-Process sem parâmetros. Ele deve exibir todos os processos em execução naquele momento.

Além disso, o alias gps pode ser usado em vez do comando Get-Process.

Get-Process
gps

Saída:

Exibir Todos os Processos em Execução

Ao executar Get-Process ou gps, o PowerShell inicia uma consulta em todo o sistema para coletar informações sobre todos os processos ativos. A ausência de parâmetros nesses comandos sinaliza ao PowerShell para não aplicar filtros e recuperar detalhes de cada processo.

O PowerShell então coleta dados detalhados sobre cada processo em execução. Esses dados incluem vários atributos que descrevem o estado e as características desses processos.

O PowerShell formata isso em uma tabela para exibição. Este formato tabular é projetado para apresentar as informações de maneira clara e legível.

A tabela geralmente inclui várias colunas principais:

  1. Id: Esta coluna mostra o Identificador do Processo (PID), uma etiqueta numérica única atribuída a cada processo. O PID é crucial para identificar e gerenciar processos específicos.
  2. ProcessName: Este é o nome do arquivo executável que iniciou o processo. Isso ajuda a reconhecer facilmente o processo, especialmente para aplicações bem conhecidas.
  3. CPU(s): Aqui, vemos a quantidade de tempo de CPU que o processo consumiu. Isso é medido em segundos e é vital para avaliar quais processos estão usando recursos significativos de CPU, potencialmente impactando o desempenho do sistema.
  4. PM(K): Isso significa Paged Memory em Kilobytes. Representa o tamanho da memória que o processo está utilizando que pode ser paginada para o disco. Essa métrica é importante para monitorar o uso da memória dos processos, o que é crucial para ajuste de desempenho e gerenciamento de recursos.

Recuperar as Informações de um Único Processo

Ao usar o PowerShell para recuperar informações sobre um processo específico, temos algumas opções de sintaxe. Tanto Get-Process -Name processName quanto Get-Process processName são válidos e alcançam o mesmo resultado, mas diferem ligeiramente em sua estrutura de sintaxe.

Get-Process -Name typora

OU

Get-Process typora

Quando executamos Get-Process -Name typora ou Get-Process typora, o PowerShell filtra os processos em execução e retorna informações especificamente para o processo chamado typora. Isso é particularmente útil quando sabemos o nome exato do processo que nos interessa.

Nos bastidores, o PowerShell procura na lista de todos os processos e corresponde o nome do processo com typora. Se o processo estiver em execução, seus detalhes são exibidos.

Saída:

Obter-Processo -Nome

Recuperar as Informações para Vários Processos

Quando usamos o cmdlet Get-Process no PowerShell para recuperar informações de vários processos, como no comando Get-Process NotePad, Outlook, estamos aproveitando a capacidade do PowerShell de lidar com múltiplos itens simultaneamente.

Get-Process NotePad, Outlook

Ao executar Get-Process NotePad, Outlook, instruímos o PowerShell a buscar detalhes para múltiplos processos simultaneamente, neste caso, NotePad e Outlook. Este comando é útil quando precisamos monitorar vários processos específicos.

O PowerShell executa uma operação semelhante ao comando de processo único, mas para cada nome de processo especificado, exibindo todas as correspondências.

Saída:

Obter-Processo Múltiplo

Além disso, você pode usar caracteres curinga para o nome do processo.

Recuperar Objetos de Processo com os Atributos Dado

Podemos exibir informações do objeto de processo para atributos específicos quando necessário. Vamos recuperar apenas o ID do Processo para o processo NotePad.

(Get-Process NotePad).Id

No comando (Get-Process NotePad).Id, primeiro obtemos o objeto de processo para NotePad e depois acessamos sua propriedade Id. Essa técnica é útil quando estamos interessados apenas em informações específicas sobre um processo, como seu ID do Processo.

Saída:

Recuperar Objetos de Processo com os Atributos Dados

Além disso, podemos recuperar o atributo de tempo de CPU para o processo NotePad, conforme mostrado a seguir.

(Get-Process NotePad).CPU

Da mesma forma, (Get-Process NotePad).CPU recupera as informações de uso de CPU para o processo NotePad. Esses comandos demonstram como podemos extrair pontos de dados particulares dos objetos de processo.

Saída:

obterprocesso cpu

Exibir o Proprietário do Processo

A saída padrão do comando Get-Process não exibe o atributo ProcessOwner. Mas isso pode ser uma informação valiosa quando você precisa terminar um determinado processo.

Podemos usar o parâmetro -IncludeUserName para incluir o atributo ProcessOwner na saída.

Get-Process -Name notepad -IncludeUserName

O comando Get-Process -Name notepad -IncludeUserName estende o comportamento padrão do Get-Process incluindo o nome de usuário do proprietário do processo na saída. O parâmetro -IncludeUserName é essencial quando precisamos identificar qual usuário está executando um processo específico, o que pode ser crítico em ambientes multiusuário ou para solução de problemas.

Este comando melhora nossa visibilidade sobre os processos, especialmente em relação à sua propriedade.

Saída:

Get-Process IncluirNomeDeUsuário

Conclusão

Este guia abrangente iluminou o poder e a versatilidade do PowerShell na gestão e monitoramento de processos do sistema. Nós viajamos pelas aplicações práticas do cmdlet Get-Process, começando pela listagem de todos os processos em execução até a identificação de processos específicos e a exploração da extração de atributos específicos do processo.

O artigo também mostrou a destreza do PowerShell em lidar com múltiplos processos simultaneamente e a facilidade de integrar informações centradas no usuário, como a propriedade do processo.

Essa integração do cmdlet Get-Process sublinha a robustez e adaptabilidade do PowerShell no âmbito da gestão de processos, oferecendo um espectro de ferramentas para administradores de sistema monitorarem, analisarem e gerenciarem processos de forma eficaz dentro de um ambiente Windows.

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
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.