Compartilhar via


Get-Process

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

Sintaxe

Get-Process
   [[-Name] <String[]>]
   [-Module]
   [-FileVersionInfo]
   [<CommonParameters>]
Get-Process
   [[-Name] <String[]>]
   -IncludeUserName
   [<CommonParameters>]
Get-Process
   -Id <Int32[]>
   [-Module]
   [-FileVersionInfo]
   [<CommonParameters>]
Get-Process
   -Id <Int32[]>
   -IncludeUserName
   [<CommonParameters>]
Get-Process
   -InputObject <Process[]>
   [-Module]
   [-FileVersionInfo]
   [<CommonParameters>]
Get-Process
   -InputObject <Process[]>
   -IncludeUserName
   [<CommonParameters>]

Description

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

Sem parâmetros, esse cmdlet obtém todos os processos no computador local. Você também pode especificar um processo específico por nome de processo ou PID (ID do processo) ou passar um objeto de processo por meio do pipeline para este cmdlet.

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

Exemplos

Exemplo 1: obter uma lista de todos os processos ativos no computador local

Get-Process

Esse comando obtém uma lista de todos os processos ativos em execução no computador local. Para obter uma definição de cada coluna, consulte a seção Anotações.

Exemplo 2: Obter todos os dados disponíveis sobre um ou mais processos

Get-Process winword, explorer | Format-List *

Esse comando obtém todos os dados disponíveis sobre os processos do Winword e do Explorer no computador. Ele usa o parâmetro Name para especificar os processos, mas omite o nome do 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 suas IDs de processo. Por exemplo, Get-Process -Id 664, 2060.

Exemplo 3: Obter todos os processos com um conjunto de trabalho maior que um tamanho especificado

Get-Process | Where-Object {$_.WorkingSet -gt 20000000}

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

WorkSet é uma das muitas propriedades de objetos de processo. Para ver todas as propriedades, digite Get-Process | Get-Member. Por padrão, os valores de todas as propriedades de quantidade estão em bytes, embora a exibição padrão as liste em quilobytes e megabytes.

Exemplo 4: listar processos no computador em grupos com base na prioridade

$A = Get-Process
$A | Get-Process | Format-Table -View priority

Esses comandos listam os processos no computador em grupos com base em sua classe de prioridade. O primeiro comando obtém todos os processos no computador e os armazena na variável $A.

O segundo comando redireciona o objeto Process armazenado na variável $A para o cmdlet Get-Process e, em seguida, para o cmdlet Format-Table, que formata os processos usando a exibição prioridade.

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

Exemplo 5: Adicionar uma propriedade à exibição de saída de Get-Process padrão

Get-Process pwsh | Format-Table `
    @{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) {$_.CPU.ToString("N")}}},
    Id, ProcessName, StartTime -AutoSize

NPM(K)  PM(K)  WS(K)   VM(M) CPU(s)    Id ProcessName StartTime
------  -----  -----   ----- ------    -- ----------- ---------
   143 239540 259384 2366162 22.73  12720 pwsh        12/5/2022 3:21:51 PM
   114  61776 104588 2366127 11.45  18336 pwsh        12/5/2022 7:30:53 AM
   156  77924  82060 2366185 10.47  18812 pwsh        12/5/2022 7:30:52 AM
    85  48216 115192 2366074 1.14   24428 pwsh        12/8/2022 9:14:15 AM

Este exemplo recupera processos do computador local. Os processos recuperados são canalizados para o comando Format-Table que adiciona a propriedade StartTime à exibição de saída de Get-Process padrão.

Exemplo 6: Obter informações de versão para um processo

Get-Process pwsh -FileVersionInfo

ProductVersion   FileVersion      FileName
--------------   -----------      --------
6.1.2            6.1.2            C:\Program Files\PowerShell\6\pwsh.exe

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

Para executar esse comando com processos que você não possui no Windows Vista e versões posteriores do Windows, você deve abrir o PowerShell com a opção Executar como administrador.

Exemplo 7: Obter módulos carregados com o processo especificado

Get-Process SQL* -Module

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 esse comando no Windows Vista e versões posteriores do Windows com processos que você não possui, você deve iniciar o PowerShell com a opção Executar como administrador.

Exemplo 8: localizar o proprietário de um processo

Get-Process pwsh -IncludeUserName

Handles      WS(K)   CPU(s)     Id UserName            ProcessName
-------      -----   ------     -- --------            -----------
    782     132080     2.08   2188 DOMAIN01\user01     pwsh

Este comando mostra como localizar o proprietário de um processo. No Windows, o parâmetro IncludeUserName requer direitos de usuário elevados (Executar como Administrador) para exibir os usuários de processos que não estão em execução como o usuário atual. A saída revela que o proprietário está Domain01\user01.

Exemplo 9: Usar uma variável automática para identificar o processo que hospeda a sessão atual

Get-Process pwsh

NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
------    -----      -----     ------      --  -- -----------
    83    96.21     105.95       4.33    1192  10 pwsh
    79    83.81     117.61       2.16   10580  10 pwsh

Get-Process -Id $PID

NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
------    -----      -----     ------      --  -- -----------
    83    96.21      77.53       4.39    1192  10 pwsh

Esses comandos mostram como usar a variável $PID automática para identificar o processo que hospeda a sessão atual do PowerShell. Você pode usar esse método para distinguir o processo de host de outros processos do PowerShell que talvez você queira interromper 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.

Exemplo 10: Obter todos os processos que têm um título de janela principal e exibi-los em uma tabela

Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowTitle -AutoSize

Esse comando obtém todos os processos que têm um título de janela principal e os exibe em uma tabela com a ID do processo e o nome do processo.

A propriedade mainWindowTitle é apenas uma das muitas propriedades úteis do objeto Process que Get-Process retorna. Para exibir todas as propriedades, redirecione os resultados de um comando Get-Process para o cmdlet Get-MemberGet-Process | Get-Member.

Parâmetros

-FileVersionInfo

Indica que esse cmdlet obtém as informações de versão do arquivo para o programa executado no processo.

No Windows, você deve abrir o PowerShell com a opção Executar como administrador para usar esse parâmetro em processos que você não possui.

Usar esse 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 FileVersionInfoSystem.Diagnostics.FileVersionInfo, não um objeto de processo. Portanto, você não pode canalizar a saída do comando para um cmdlet que espera um objeto de processo, como Stop-Process.

Tipo:SwitchParameter
Aliases:FV, FVI
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Id

Especifica um ou mais processos por PID (ID do processo). Para especificar várias IDs, use vírgulas para separar as IDs. Para localizar o PID de um processo, digite Get-Process.

Tipo:Int32[]
Aliases:PID
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-IncludeUserName

Indica que o valor UserName do objeto Process é retornado com os resultados do comando.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-InputObject

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

Tipo:Process[]
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-Module

Indica que esse cmdlet obtém os módulos que foram carregados pelos processos.

No Windows Vista e versões posteriores do Windows, você deve abrir o PowerShell com a opção Executar como administrador para usar esse parâmetro em processos que você não possui.

Esse parâmetro é equivalente a obter a propriedade Modules de cada objeto de processo. Quando você usa esse parâmetro, esse cmdlet retorna um objeto System.Diagnostics.ProcessModule, não um objeto de processo. Portanto, você não pode canalizar 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, esse cmdlet retorna um objeto FileVersionInfo com informações sobre a versão do arquivo de todos os módulos.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Name

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

Tipo:String[]
Aliases:ProcessName
Cargo:0
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:True

Entradas

Process

Você pode canalizar um objeto de processo para este cmdlet.

Saídas

Process

Por padrão, esse cmdlet retorna um objeto System.Diagnostics.Process.

FileVersionInfo

Se você usar o parâmetro FileVersionInfo, esse cmdlet retornará um objeto FileVersionInfo.

ProcessModule

Se você usar o parâmetro módulo, sem o parâmetro FileVersionInfo, esse cmdlet retornará um objeto ProcessModule.

Observações

O PowerShell inclui os seguintes aliases para Get-Process:

  • Todas as plataformas:
    • gps
  • Windows:
    • ps

Em computadores que executam uma versão de 64 bits do Windows, a versão de 64 bits do PowerShell obtém apenas módulos de processo de 64 bits e a versão de 32 bits do PowerShell obtém apenas módulos de processo de 32 bits.

Para obter informações de processo de um computador remoto, use o cmdlet Invoke-Command. Para obter mais informações, consulte Invoke-Command.

Você pode usar as propriedades e os métodos do objeto Win32_Process WMI (Instrumentação de Gerenciamento do Windows) no PowerShell. Para obter informações, consulte Win32_Process.

A exibição padrão de um processo é uma tabela que inclui as colunas a seguir. Para obter uma descrição de todas as propriedades de objetos de processo, consulte Propriedades do Processo.

  • Manipula: o número de identificadores que o processo abriu.
  • NPM(K): a quantidade de memória não paginada que o processo está usando, em quilobytes.
  • PM(K): a quantidade de memória paginável que o processo está usando, em quilobytes.
  • WS(K): o tamanho do conjunto de trabalho do processo, em quilobytes. O conjunto de trabalho consiste nas páginas de memória que foram referenciadas recentemente pelo processo.
  • VM(M): a quantidade de memória virtual que o processo está usando, em megabytes. A memória virtual inclui armazenamento nos arquivos de paginação no disco.
  • CPU(s): a quantidade de tempo do processador que o processo usou em todos os processadores, em segundos.
  • ID: a ID do processo (PID) do processo.
  • ProcessName: o nome do processo. Para obter explicações sobre os conceitos relacionados aos processos, consulte o Glossário no Centro de Ajuda e Suporte e a Ajuda para o Gerenciador de Tarefas.

Você também pode usar as exibições alternativas internas dos processos disponíveis com Format-Table, como StartTime e Priority, e pode criar suas próprias exibições.