Interessado em usar o cmdlet PowerShell Get-Process para exibir os processos em execução de um sistema? Com Get-Process
, você pode encontrar o proprietário do processo, o ID do processo ou até mesmo onde no disco o processo está localizado.
Neste artigo, você aprenderá como usar o cmdlet Get-Process
do PowerShell por meio de exemplos do mundo real. Se manipular processos para dobrá-los à sua vontade no Windows ou Linux parece divertido, continue lendo!
Relacionado: Como Encerrar um Processo no Linux Usando ps, pgrep, pkill e mais!
Pré-requisitos
Antes de prosseguir, abaixo estão os pré-requisitos necessários para acompanhar os exemplos neste artigo.
- Embora o Windows PowerShell 5.1 seja suficiente para a maioria dos exemplos aqui, PowerShell 7.1 e superior são necessários para suporte ao Linux.
Relacionado: Atualizando para o PowerShell 7: Um Passo a Passo
- Este artigo usa o Windows 10 e o Ubuntu 20.04 LTS, mas qualquer sistema operacional em que o PowerShell seja executado funcionará.
Pronto? Vamos mergulhar e gerenciar alguns processos!
Exibindo Processos em Execução
Get-Process
gerencia os processos locais. Neste primeiro exemplo, você está usando o cmdlet PowerShell Get-Process. Este comando exibe todos os processos em execução.
Get-Process
retorna uma captura instantânea no tempo das informações dos processos em execução do sistema. Para exibir informações de processo em tempo real, o Windows oferece o Gerenciador de Tarefas do Windows e o Linux oferece o comando top.
Para começar, abra seu console do PowerShell e execute Get-Process
. Observe que Get-Process
retorna as informações dos processos em execução, como mostrado abaixo. O formato de saída é idêntico para os sistemas operacionais Windows e Linux.

Get-Process
cmdlet on Windows to display local processes.Por padrão, os comandos
gps
oups
existem como aliases paraGet-Process
. Como o PowerShell 7 é multiplataforma, o comandops
entra em conflito com um comando Linux embutido. Portanto, ops
não funcionará no Linux, apenas o aliasgps
.
O significado da saída do Get-Process
pode não ser imediatamente óbvio. As propriedades padrão do Get-Process
são descritas com mais detalhes abaixo.
- NPM(K) – A quantidade de memória não paginada que um processo está usando, exibida em kilobytes, conforme indicado pela notação
(K)
. - PM(M) – A quantidade de memória paginável que um processo está utilizando, exibida em megabytes, como indicado pela notação
(M)
. - WS(M) – O tamanho do conjunto de trabalho do processo, exibido em megabytes. O conjunto de trabalho consiste nas páginas de memória que foram recentemente referenciadas pelo processo.
- VM(M) – A quantidade de memória virtual que o processo está utilizando, exibida em megabytes. Inclui o armazenamento nos arquivos de paginação no disco.
- CPU(S) – A quantidade de tempo de processador que o processo utilizou em todos os processos, exibida em segundos.
- Id – O ID do processo (PID) do processo.
- SI – Identificador da sessão do processo em execução. A sessão
0
indica que o processo está disponível para todos os usuários,1
indica que o processo existe sob o primeiro usuário conectado e assim por diante. - ProcessName – O nome do processo em execução.
Para exibir uma lista de pseudônimos de propriedade mapeados para nomes completos de propriedade, use o comando
Get-Process | Get-Member -MemberType 'AliasProperty'
.
Abaixo está outro ótimo exemplo. Para cada instância do processo brave que ele encontra, ele usa o ID desse processo ($_.id
) e o passa para Get-NetTCPConnection
. O PowerShell então usa Get-NetTCPConnection
para encontrar informações sobre cada conexão de rede que o processo brave tem aberta.
Rodar o seguinte código na sua sessão do PowerShell quando o navegador Brave estiver em execução.
Obrigado a Jay Adams lá na SystemFrontier!
Parabéns, agora você pode visualizar todos os processos em execução tanto no Windows quanto no Linux usando Get-Process
!
Encontrando Atributos Específicos do Processo
Get-Process
retorna muitas propriedades diferentes nos processos em execução, como você viu anteriormente. Como em todos os outros objetos do PowerShell, você pode escolher seletivamente as propriedades nos objetos.
Agora, vamos passar por um exemplo simples de como você pode recuperar propriedades específicas para um processo específico:
- Inicie a calculadora do Windows.
2. Com um console do PowerShell aberto, execute Get-Process
usando o parâmetro Name
para mostrar apenas todos os processos em execução com Calculator como nome. Você verá a mesma saída que viu anteriormente.
Get-Process
retorna muitas propriedades, como esperado. Talvez você queira encontrar a utilização da CPU com o valor na coluna CPU(s)
. Coloque o comando Get-Process
entre parênteses e referencie a propriedade CPU
como mostrado abaixo. Você verá que ele retorna apenas o valor da propriedade CPU
.
Observe que
Get-Process
retorna um nome chamadoCPU(s)
e o trecho de código acima usou apenas o nomeCPU
. Às vezes, o PowerShell não exibe o nome real da propriedade na saída. Esse conceito é executado com um arquivo de formatação PS1XML.
O tempo da CPU é expresso como um total de segundos em vários núcleos. Para obter um número mais legível para humanos, arredonde-o para o décimo mais próximo usando um método Math
como mostrado abaixo.

Você pode usar a abordagem acima para encontrar outras propriedades também, como
Id
se quiser ver apenas o ID de um processo.
Deixe o aplicativo Calculadora em execução. Você usará este aplicativo pelo restante dos exemplos.
Recuperando o uso de memória do processo
Diagnosticar sistemas com execução lenta pode ser um desafio, com a memória restrita frequentemente sendo uma causa. Continuando com o aplicativo Calculadora, recupere o processo Calculadora
e exiba apenas a propriedade VM
. Como visto abaixo, a memória usada é exibida em megabytes (MB).

Calculator
process memory usage.Para auxiliar na compreensão do uso da memória, utilize os multiplicadores de conversão integrados do PowerShell para mudar megabytes (MB) para gigabytes (GB). No exemplo abaixo, você irá converter a memória usada para GB e então utilizar o biblioteca matemática .NET método Round
para arredondar o valor, conforme visto na captura de tela abaixo.
O uso de utilitários integrados do PowerShell para converter os valores torna mais fácil entender a saída. Continue lendo para aprender como localizar o ID de um processo.

Expondo Propriedades Pouco Conhecidas
Nem todas as propriedades estão incluídas ou mostradas por padrão com Get-Process
. Continue lendo abaixo para aprender mais sobre as propriedades Path
e UserName
e como utilizá-las!
Descobrindo Onde um Binário de Processo Reside
Há muitos lugares em um sistema onde um executável de processo pode ser armazenado. Se um processo está em execução atualmente, Get-Process
torna fácil encontrar o caminho do sistema de arquivos do arquivo de processo, apesar de Path
não ser exibido por padrão. Como mostrado abaixo, a propriedade Path
contém a localização do sistema de arquivos do executável do processo.

Get-Process
to display a process’s full file system path on Windows.Assim como no Windows, o comando Get-Process
no Linux também retorna o caminho do sistema de arquivos. No exemplo abaixo, o processo gnome-calculator
está em execução com o caminho exibido na saída do console.

Get-Process
to display a process’s full file system path on Linux.Agentes maliciosos podem nomear um processo com o mesmo nome ou similar a um confiável. Portanto, a capacidade de localizar o caminho do sistema de arquivos ajuda em um cenário de resposta a incidentes de segurança (IR). Continue lendo para descobrir como localizar o proprietário do processo, já que UserName
não está incluído na saída padrão.
Localizando o Proprietário do Processo
Para incluir o valor de UserName
na saída, você precisará usar o parâmetro IncludeUserName
. É importante saber o proprietário do processo, especialmente para evitar encerrar involuntariamente o processo de outro usuário. Como mostrado abaixo, a propriedade UserName
agora está incluída na saída do processo.

Calculator
process on Windows.Por fim, continue lendo para aprender sobre o uso do Get-Process
em um computador remoto para obter informações sobre processos!
Localizando Processos em Computadores Remotos
Embora no Windows PowerShell o comando Get-Process
não tenha capacidades remotas por si só, você sempre pode aproveitar o Remoting do PowerShell e o comando Invoke-Command
para executá-lo em computadores remotos.
Relacionado: Como Configurar o PSRemoting com Windows e Linux
Mas, se estiver no Linux ou estiver executando o PowerShell 6 no Windows, agora você possui um parâmetro ComputerName
que pode ser usado para consultar processos em computadores remotos.
O parâmetro
-ComputerName
foi removido no PowerShell 7.x, pois o cmdlet não está diretamente relacionado ao acesso remoto. Para alcançar o mesmo resultado, você pode encapsular o comando em umInvoke-Command
, assim:Invoke-Command -ComputerName "NomeDoComputador" -ScriptBlock { Get-Process -ProcessName 'processo' }
Ao executar o comando acima em um computador remoto, o mesmo resultado é exibido como se o comando Get-Process
fosse executado localmente.
Abaixo está um exemplo de acesso remoto a outro computador e obtenção de processos em execução:

Você pode direcionar vários computadores separando-os por vírgula, por exemplo,
Get-Process -ComputerName SRV1, SRV2.
Próximos Passos
Neste artigo, você aprendeu como usar o cmdlet Get-Process
do PowerShell para encontrar processos em execução no PowerShell em computadores locais e remotos, tanto no Linux quanto no Windows.
Agora, o que você fará com esse conhecimento? Experimente passar um processo recuperado pelo Get-Process
para o Stop-Process
em um computador local ou remoto para encerrá-lo!
Source:
https://adamtheautomator.com/powershell-get-process/