Compartilhar via


Get-Process

Obtém os processos em execução no computador local ou em um computador remoto.

Sintaxe

Get-Process [[-Name] <string[]>] [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]

Get-Process -Id <Int32[]> [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]

Get-Process -InputObject <Process[]> [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]

Descrição

O cmdlet Get-Process obtém os processos em um computador local ou remoto.

Sem parâmetros, Get-Process obtém todos os processos no computador local. Você também pode especificar um processo específico pelo nome ou pela PID (ID de processo), ou passar um objeto de processo por pipeline para Get-Process.

Por padrão, Get-Process retorna um objeto de processo que tem informações detalhadas sobre o processo e suporta métodos que o permitem iniciar e parar o processo. Você também pode usar os parâmetros de Get-Process para obter informações sobre a versão do arquivo do programa que é executado no processo e obter os módulos carregados pelo processo.

Parâmetros

-ComputerName <string[]>

Obtém os processos em execução nos computadores especificados. O padrão é o computador local.

Digite o nome NetBIOS, um endereço IP ou um nome de domínio totalmente qualificado de um ou mais computadores. Para especificar o computador local, digite o nome do computador, um ponto (.) ou "localhost".

Este parâmetro não se baseia na comunicação remota do Windows PowerShell. É possível usar o parâmetro ComputerName de Get-Process mesmo que o seu computador não esteja configurado para executar comandos remotos.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

true (ByPropertyName)

Aceitar caracteres curinga?

false

-FileVersionInfo

Obtém as informações sobre a versão de arquivo do programa que é executado no processo.

No Windows Vista e em versões mais recentes do Windows, é necessário abrir o Windows PowerShell com a opção "Executar como administrador" para usar este parâmetro nos processos que não lhe pertencem.

O uso este parâmetro equivale a obter a propriedade MainModule.FileVersionInfo de cada objeto de processo. Quando você usa esse parâmetro, Get-Process retorna um objeto FileVersionInfo (System.Diagnostics.FileVersionInfo) e não um objeto de processo. Portanto, você não pode enviar a saída do comando para um cmdlet que espera um objeto de processo, como Stop-Process.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Id <Int32[]>

Especifica um ou mais processos por ID de processo (PID). Para especificar várias IDs, use vírgulas para separar os identificadores. Para localizar a PID de um processo, digite "get-process".

Necessário?

true

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

true (ByPropertyName)

Aceitar caracteres curinga?

false

-InputObject <Process[]>

Especifica um ou mais objetos de processo. Insira uma variável que contenha os objetos, ou digite um comando ou uma expressão que obtenha os objetos.

Necessário?

true

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

true (ByValue)

Aceitar caracteres curinga?

false

-Module

Obtém os módulos que foram carregados pelos processos.

No Windows Vista e em versões mais recentes do Windows, é necessário abrir o Windows PowerShell com a opção "Executar como administrador" para usar este parâmetro nos processos que não lhe pertencem.

Este parâmetro equivale a obter a propriedade Modules de cada objeto de processo. Quando você usa esse parâmetro, Get-Process retorna um objeto ProcessModule (System.Diagnostics.ProcessModule) e não um objeto de processo. Portanto, você não pode enviar a saída do comando para um cmdlet que espera um objeto de processo, como Stop-Process.

Quando você usa os parâmetros Module e FileVersionInfo no mesmo comando, Get-Process retorna um objeto FileVersionInfo com informações sobre a versão de arquivo de todos os módulos.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Name <string[]>

Especifica um ou mais processos por nome de processo. Você pode digitar vários nomes de processo (separados por vírgulas) ou usar caracteres curinga. O nome do parâmetro ("Name") é opcional.

Necessário?

false

Posição?

1

Valor padrão

Aceitar entrada do pipeline?

true (ByPropertyName)

Aceitar caracteres curinga?

true

<CommonParameters>

Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.

Entradas e saídas

O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.

Entradas

System.Diagnostics.Process

Você pode enviar um objeto de processo para Get-Process.

Saídas

System.Diagnostics.Process, System.Diagnotics.FileVersionInfo, System.Diagnostics.ProcessModule

Por padrão, Get-Process retorna um objeto System.Diagnostics.Process. Se você usar o parâmetro FileVersionInfo, ele retornará um objeto System.Diagnotics.FileVersionInfo. Se você usar o parâmetro Module (sem o parâmetro FileVersionInfo), ele retornará um objeto System.Diagnostics.ProcessModule.

Observações

Você não pode usar os parâmetros Name, ID e InputObject no mesmo comando.

Você também pode fazer referência a Get-Process usando seu aliases internos, "ps" e "gps". Para obter mais informações, consulte about_Aliases.

Você também pode usar as propriedades e métodos do objeto WMI Win32_Process no Windows PowerShell. Para obter mais informações, consulte Get-WmiObject e Windows Management Instrument (WMI) SDK.

A exibição padrão de um processo é uma tabela que inclui as seguintes colunas:

-- Handles: o número de manipulações abertas pelo processo.

-- NPM(K): a quantidade de memória não paginada usada pelo processo, em kilobytes.

-- PM(K): a quantidade de memória paginada usada pelo processo, em kilobytes.

-- WS(K): o tamanho do conjunto de trabalho do processo, em kilobytes. O conjunto de trabalho consiste nas páginas de memória recentemente referenciadas pelo processo.

-- VM(M): a quantidade de memória virtual usada pelo processo, em megabytes. A memória virtual inclui o armazenamento em disco dos arquivos de paginação.

-- CPU(s): o tempo do processador que o processo usou em todos os processadores, em segundos.

-- ID: a ID de processo (PID) do processo.

-- ProcessName: o nome do processo.

Para obter explicações sobre os conceitos relacionados aos processos, consulte o Glossário do Centro de Ajuda e Suporte e a Ajuda do Gerenciador de Tarefas.

Você também pode usar as exibições alternativas e internas dos processos, disponíveis por meio de Format-Table, como "StartTime" e "Priority", e assim criar suas próprias exibições. Para obter mais informações, consulte Format-Table.

Exemplo 1

C:\PS>Get-Process

Descrição
-----------
Esse comando obtém uma lista de todos os processos em execução no computador local. Para obter uma definição de cada coluna, consulte a seção “Observações adicionais” no tópico da Ajuda para Get-Help.





Exemplo 2

C:\PS>Get-Process winword, explorer | format-list *

Descrição
-----------
Esse comando obtém todos os dados disponíveis sobre os processos Winword e Explorer no computador. Ele use o parâmetro Name para especificar os processos, mas omite o nome de parâmetro opcional. O operador de pipeline (|) passa os dados para o cmdlet Format-List, que exibe todas as propriedades disponíveis (*) dos objetos de processo Winword e Explorer.

Você também pode identificar os processos por seus IDs de processo. Por exemplo, "get-process -id 664, 2060".





Exemplo 3

C:\PS>get-process | where-object {$_.WorkingSet -gt 20000000}

Descrição
-----------
Esse comando obtém todos os processos que tenham um conjunto de trabalho maior do que 20 MB. Ele utiliza o cmdlet Get-Process para obter todos os processos em execução. O operador de pipeline (|) transmite os objetos de processo para o cmdlet Where-Object, que seleciona somente o objeto com um valor maior do que 20.000.000 bytes na propriedade WorkingSet. 

WorkingSet é uma das muitas propriedades dos objetos de processo. Para visualizar todas as propriedades, digite "Get-Process | Get-Member". Por padrão, os valores de todas as propriedades de quantidade estão em bytes, mesmo que a exibição padrão as mostre em kilobytes e megabytes.





Exemplo 4

C:\PS>$a = get-process

C:\PS> get-process -inputobject $a | format-table -view priority

Descrição
-----------
Estes comandos listam os processos no computador em grupos com base nas suas classes de prioridade. 

O primeiro comando obtém todos os processos no computador e os armazena na variável $a. 

O segundo comando usa o parâmetro InputObject para passar os objetos de processos armazenados na variável $a para o cmdlet Get-Process. O operador de pipeline passa os objetos para o cmdlet Format-Table, que formata os processos usando a exibição Priority. 

A exibição de prioridade e outras exibições são definidas nos arquivos de formato PS1XML no diretório base do Windows PowerShell ($pshome).





Exemplo 5

C:\PS>get-process powershell -computername S1, localhost | ft @{Label="NPM(K)";Expression={[int]($_.NPM/1024)}}, @{Label="PM(K)";Expression={[int]($_.PM/1024)}},@{Label="WS(K)";Expression={[int]($_.WS/1024)}},@{Label="VM(M)";Expression={[int]($_.VM/1MB)}}, @{Label="CPU(s)";Expression={if ($_.CPU -ne $()) { $_.CPU.ToString("N")}}}, Id, MachineName, ProcessName -auto


NPM(K) PM(K) WS(K) VM(M) CPU(s)   Id MachineName ProcessName
------ ----- ----- ----- ------   -- ----------- -----------
     6 23500 31340   142        1980 S1          powershell
     6 23500 31348   142        4016 S1          powershell
    27 54572 54520   576        4428 localhost   powershell

Descrição
-----------
Este exemplo fornece um comando Format-Table (alias = ft) que adiciona a propriedade MachineName à exibição padrão da saída de Get-Process.





Exemplo 6

C:\PS>get-process powershell -fileversioninfo

ProductVersion   FileVersion      FileName
--------------   -----------      --------
6.1.6713.1       6.1.6713.1 (f... C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe

Descrição
-----------
Esse comando usa o parâmetro FileVersionInfo para obter as informações sobre versão do arquivo PowerShell.exe, que é o módulo principal do processo do PowerShell. 

Para executar este comando com processos que não pertencem a você no Windows Vista e em versões mais recentes do Windows, é necessário abrir o Windows PowerShell com a opção "Executar como administrador".





Exemplo 7

C:\PS>get-process sql* -module

Descrição
-----------
Esse comando usa o parâmetro Module para obter os módulos que foram carregados pelo processo. Esse comando obtém os módulos para os processos que têm nomes que começam com "sql".

Para executar este comando no Windows Vista (e em versões mais recentes do Windows) com processos que não pertencem a você, é necessário iniciar o Windows PowerShell com a opção "Executar como administrador".





Exemplo 8

C:\PS>$p = get-wmiobject win32_process -filter "name='powershell.exe'"

C:\PS> $p.getowner()

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 3
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
Domain           : DOMAIN01
ReturnValue      : 0
User             : user01

Descrição
-----------
Esse comando mostra como localizar o proprietário de um processo. Como o objeto System.Diagnostics.Process retornado por Get-Process não tem uma propriedade ou um método que retorne o proprietário do processo, o comando usa
o cmdlet Get-WmiObject para obter um objeto Win32_Process que representa o mesmo processo.

O primeiro comando usa o cmdlet Get-WmiObject para obter o processo do PowerShell. Ele o salva na variável $p.

O segundo comando usa o método GetOwner para obter o proprietário do processo em $p. O comando revela que o proprietário é Domain01\user01.





Exemplo 9

C:\PS>get-process powershell

C:\PS> get-process -id $pid

C:\PS> get-process powershell

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    308      26    52308      61780   567     3.18   5632 powershell
    377      26    62676      63384   575     3.88   5888 powershell


C:\PS> get-process -id $pid

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    396      26    56488      57236   575     3.90   5888 powershell

Descrição
-----------
Estes comandos mostram como usar a variável automática $pid para identificar o processo que hospeda a sessão atual do Windows PowerShell. Você pode usar este método para distinguir o processo do host de outros processos do PowerShell que queira parar ou fechar.

O primeiro comando obtém todos os processos do PowerShell na sessão atual. 

O segundo comando obtém o processo do PowerShell que hospeda a sessão atual.





Consulte também

Conceitos

Get-Process
Start-Process
Stop-Process
Wait-Process
Debug-Process