Aprenda o Microsoft Azure do Zero Curso Gratuito

>> O link será enviado via Whatsapp, Para receber o link do curso preencha o campo ao lado.

Powershell Leonardo Duarte

Get-Process – Como obter informações detalhadas sobre os processos

Embora muitos saibam que o comando Get-Process no PowerShell pode fornecer informações básicas do processo, ele também pode exibir detalhes específicos com alguns pequenos ajustes.

Se você usa o Windows PowerShell há algum tempo, provavelmente está familiarizado com o cmdlet Get-Process. Esse cmdlet, que você pode ver na Figura 1 , retorna uma lista dos vários processos em execução no seu computador. Obviamente, essas informações podem ser úteis, mas há muito mais informações disponíveis se você souber acessá-las.

get-process

Para mostrar os tipos de informações que você pode acessar, vamos restringir um pouco a lista observando um único processo. Para fins de demonstração, vou usar o último processo da lista. Como você pode ver na figura acima, esse processo tem um ID 3644. Se eu quiser examinar esse processo sozinho, posso digitar Get-Process -ID 3644.

Este comando retorna exatamente as mesmas informações de antes, mas exibe apenas o processo especificado. No entanto, podemos acessar muito mais informações sobre esse processo. Uma maneira de fazer isso é anexar o cmdlet Select-Object e o caractere curinga (*). Isso informa ao PowerShell para exibir todas as propriedades associadas ao processo selecionado. O comando completo é:

Get-Process -ID 3644 | Select-Object *

Se você observar a Figura 2 , poderá ver que o PowerShell retorna informações muito detalhadas sobre o processo especificado. De fato, isso é uma melhoria das informações fornecidas por padrão, mas ainda podemos fazer melhor.

Existem duas técnicas principais que podemos usar para obter mais informações. Uma técnica é expandir as informações que já estão sendo exibidas. Por exemplo, se você observar a figura acima, notará uma propriedade chamada Threads. O Windows exibe uma lista incompleta de threads, conforme indicado pelo … após o último número de threads. Se você quiser ver uma lista abrangente de threads, podemos fazê-lo usando o parâmetro -ExpandProperty. O comando seria algo parecido com isto:

Get-Process -ID 3644 | Threads Select-Object -ExpandProperty

O parâmetro ExpandProperty é um parâmetro comum do PowerShell que normalmente fará com que o PowerShell revele uma lista completa de propriedades, em vez de truncar a lista. Como tal, seria razoável supor que este comando exibisse uma lista de números de ID de encadeamento. Nesse caso, no entanto, o PowerShell nos fornece mais informações. Para cada thread, vemos o número de identificação, mas também vemos coisas como a prioridade e o tempo total do processador. Você pode ver uma saída parcial na Figura 3.

Tudo bem, mas levanta a questão de como podemos acessar essa lista de IDs de encadeamentos. A solução é usar o cmdlet Select-Object uma segunda vez. Eu nunca vi alguém usar Select-Object duas vezes em uma única cadeia de comando antes, mas funciona. O comando completo é:

Get-Process -ID 3644 | Select-Object -ExpandProperty  Threads | Select-Object ID


Mencionei anteriormente que havia duas técnicas principais para extrair mais dados do cmdlet Get-Process. O outro método envolve o uso de notação pontilhada. Se você olhar para a Figura 2, notará uma propriedade chamada StartInfo e verá que seu valor é System.Diagnostics.ProcessStartInfo. Esse valor não tem sentido por si só, mas podemos fazer uma busca detalhada para obter algumas informações úteis. Para fazer isso, primeiro devemos declarar uma variável que podemos usar. O comando que eu vou usar é:

$A = Get-Process -ID 3644

Depois que a variável é decalcada, podemos examinar propriedades individuais digitando o nome da variável, um ponto e o nome da propriedade. Observe na Figura 5 , no entanto, o que acontece quando faço isso com a propriedade StartInfo.

get-process

Agora podemos ver algumas informações de início do processo, mas essas informações ainda são de utilidade limitada. O pequeno segredo sujo é que você pode usar a notação pontilhada para detalhar ainda mais. A maioria dos dados mostrados na figura anterior estava relacionada ao meio ambiente. Portanto, com isso em mente, vamos adicionar outro ponto e a palavra “ambiente” ao comando anterior. O comando torna-se, portanto:

$A.StartInfo.Environment

Agora, temos acesso a algumas informações úteis. Você pode ver a saída na Figura 6.

get-process

Sobre o autor | Website

Meu nome é Leonardo Duarte sou profissional de TI com mais de 18 anos de experiência em produtos da Microsoft. Possuo diversas certificações: MCP/MCT/MCTS/MCSA/MCSE

Que tal um Curso Microsoft Gratuito com Certificado Internacional? Não fiquede fora junte-se aos 1100 alunos já inscritos.

Aprenda o Microsoft Azure do Zero - Curso Gratuito Para receber o link do curso preencha o campo abaixo.

Por gentileza, se deseja alterar o arquivo do rodapé,
entre em contato com o suporte.