Compartilhar via


Get-Process

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

Sintaxe

Name (Padrão)

Get-Process
    [[-Name] <String[]>]
    [-Module]
    [-FileVersionInfo]
    [<CommonParameters>]

NameWithUserName

Get-Process
    [[-Name] <String[]>]
    -IncludeUserName
    [<CommonParameters>]

Id

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

IdWithUserName

Get-Process
    -Id <Int32[]>
    -IncludeUserName
    [<CommonParameters>]

InputObject

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

InputObjectWithUserName

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 por meio da canalização de um objeto System.Diagnostics.Process para este cmdlet.

Por padrão, esse cmdlet retorna um objeto Process que tem informações detalhadas sobre o processo e dá suporte a métodos que permitem controlá-lo. Com os parâmetros, você pode alterar o tipo de informação retornada por esse cmdlet.

  • Módulo: recuperar informações para cada módulo carregado no processo.
  • FileVersionInfo: recuperar informações de versão do arquivo para o módulo principal do processo.

Observação

Um módulo é um arquivo executável ou uma DLL (biblioteca de link dinâmico) carregada em um processo. Um processo tem um ou mais módulos. O módulo principal é o módulo usado inicialmente para iniciar o processo. Para obter mais informações, consulte a Classe ProcessModule.

Exemplos

Exemplo 1: obter uma lista de todos os processos em execução no computador local

Get-Process

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

Para ver todas as propriedades de um objeto Process , use Get-Process | Get-Member. Por padrão, o PowerShell exibe determinados valores de propriedade usando unidades como quilobytes (K) e megabytes (M). Os valores reais quando acessados com o operador de acesso de membro (.) estão em bytes.

Exemplo 2: exibir informações detalhadas sobre um ou mais processos

Get-Process winword, explorer | Format-List *

Esse pipeline exibe informações detalhadas sobre os processos e explorer os winword processos no computador. Ele usa o parâmetro Name para especificar os processos, mas omite o nome do parâmetro opcional. O operador de pipeline (|) canaliza objetos process para o Format-List cmdlet, que exibe todas as propriedades disponíveis (*) e seus valores para cada objeto.

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 20971520 }
Get-Process | Where-Object WorkingSet -GT 20MB

O Get-Process cmdlet retorna os processos em execução. A saída é canalizada para o Where-Object cmdlet, que seleciona os objetos com um valor WorkingSet maior que 20.971.520 bytes.

No primeiro exemplo, Where-Object usa um scriptblock para comparar a propriedade WorkingSet de cada objeto Process . No segundo exemplo, o Where-Object cmdlet usa a sintaxe simplificada para comparar a propriedade WorkingSet . Nesse caso, -GT é um parâmetro, não um operador de comparação. O segundo exemplo também usa um sufixo literal numérico como uma alternativa concisa para 20971520. No PowerShell, MB representa um multiplicador de mebibyte (MiB). 20MB é igual a 20.971.520 bytes.

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

$processes = Get-Process
$processes | Sort-Object { $_.PriorityClass } | Format-Table -View Priority

Esses comandos exibem 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 $processes variável.

O segundo comando redireciona os objetos Process armazenados na $processes variável para o Sort-Object cmdlet e, em seguida, para o Format-Table cmdlet, que formata os processos usando a exibição Priority .

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

Get-Process -Name pwsh | Format-Table -Property @(
    @{ Name = 'NPM(K)'; Expression = { [int] ($_.NPM / 1KB) } }
    @{ Name = 'PM(M)';  Expression = { [int] ($_.PM / 1MB) } }
    @{ Name = 'WS(M)';  Expression = { [int] ($_.WS / 1MB) } }
    @{ Name = 'CPU(s)'; Expression = { if ($_.CPU) { $_.CPU.ToString('N') } } }
    'Id'
    @{ Name = 'SI'; Expression = 'SessionId' }
    'ProcessName'
    'StartTime'
) -AutoSize
NPM(K) PM(M) WS(M) CPU(s)   Id SI ProcessName StartTime
------ ----- ----- ------   -- -- ----------- ---------
    84    46    79 18.297 3188  1 pwsh        4/14/2025 10:40:10 AM
    66    30    90 4.328  4640  1 pwsh        4/13/2025 3:33:50 PM
    66    30    90 4.516  9204  1 pwsh        4/14/2025 9:54:27 AM

Este exemplo recupera processos do computador local e canaliza cada objeto Process para o Format-Table cmdlet. Format-Table recria a exibição de saída padrão de um objeto Process usando uma mistura de nomes de propriedade e propriedades calculadas. A exibição inclui uma propriedade StartTime adicional não presente na exibição padrão.

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

Get-Process -Name pwsh -FileVersionInfo
ProductVersion   FileVersion      FileName
--------------   -----------      --------
7.5.0 SHA: 99da… 7.5.0.500        C:\Program Files\PowerShell\7\pwsh.exe

Esse comando usa o parâmetro FileVersionInfo para obter informações de versão do arquivo para o módulo principal do pwsh processo. O módulo principal é o arquivo usado para iniciar o processo, que nesse caso é pwsh.exe.

Para usar esse comando com processos que você não possui no Windows Vista e versões posteriores do Windows, execute o PowerShell com direitos de usuário elevados (Executar como administrador).

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

Get-Process -Name SQL* -Module

Esse comando usa o parâmetro Module para obter os módulos carregados por todos os processos com um nome começando com SQL.

Para usar esse comando com processos que você não possui no Windows Vista e versões posteriores do Windows, execute o PowerShell com direitos de usuário elevados (Executar como administrador).

Exemplo 8: localizar o proprietário de um processo

Get-Process -Name pwsh -IncludeUserName
WS(M)   CPU(s)      Id UserName                       ProcessName
-----   ------      -- --------                       -----------
46.53    21.70    3188 DOMAIN01\user01                pwsh
Get-CimInstance -ClassName Win32_Process -Filter "name='pwsh.exe'" |
    Invoke-CimMethod -MethodName GetOwner
Domain   ReturnValue User   PSComputerName
------   ----------- ----   --------------
DOMAIN01           0 user01

O primeiro comando mostra como obter o proprietário de um processo. A saída revela que o proprietário está DOMAIN01\user01.

O segundo pipeline mostra uma maneira diferente de obter o proprietário de um processo usando Get-CimInstance e Invoke-CimMethod. A classe Win32_Process com um filtro recupera pwsh processos e o método invocado GetOwner() retorna informações sobre o Domínio e o Usuário do processo. Esse método só está disponível no Windows e não requer direitos de usuário elevados.

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

Get-Process -Name 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 pwsh processos que talvez você queira controlar.

O primeiro comando obtém todos os pwsh processos em execução. O segundo comando obtém o pwsh processo que está hospedando 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 -Property MainWindowTitle |
    Format-Table -Property Id, Name, MainWindowTitle -AutoSize

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

MainWindowTitle é uma das muitas propriedades úteis do tipo de objeto Diagnostics.Process que Get-Process retorna. Para exibir todas as propriedades, use Get-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 Vista e versões posteriores do Windows, você deve executar o PowerShell com direitos de usuário elevados (Executar como administrador) para usar esse parâmetro em processos que você não possui.

Usar esse parâmetro é o mesmo que acessar a propriedade MainModule.FileVersionInfo de cada objeto Process . Quando você usa esse parâmetro, Get-Process retorna um objeto FileVersionInfo , não um objeto Process . Você não pode canalizar a saída produzida usando esse parâmetro para um cmdlet que espera um objeto Process , como Stop-Process.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False
Aliases:FV, FVI

Conjuntos de parâmetros

Name
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
Id
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
InputObject
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Id

Especifica um ou mais processos por PID (ID do processo). Você pode especificar várias IDs separadas por vírgulas. Para obter o PID de um processo, use Get-Process. Para obter o PID da sessão atual do PowerShell, use $PID.

Propriedades do parâmetro

Tipo:

Int32[]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:PID

Conjuntos de parâmetros

Id
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False
IdWithUserName
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-IncludeUserName

Indica que esse comando adiciona uma propriedade UserName a cada objeto Process retornado.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

NameWithUserName
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
IdWithUserName
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
InputObjectWithUserName
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-InputObject

Especifica um ou mais objetos Process . Use uma variável que contenha os objetos ou um comando ou expressão que obtém os objetos.

Propriedades do parâmetro

Tipo:

Process[]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

InputObject
Cargo:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
InputObjectWithUserName
Cargo:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Module

Indica que esse cmdlet obtém os módulos que o processo carregou.

No Windows Vista e versões posteriores do Windows, você deve executar o PowerShell com direitos de usuário elevados (Executar como administrador) para usar esse parâmetro em processos que você não possui.

Usar esse parâmetro é o mesmo que acessar a propriedade Modules de cada objeto Process . Quando você usa esse parâmetro, Get-Process retorna um objeto ProcessModule , não um objeto Process . Você não pode canalizar a saída produzida usando esse parâmetro para um cmdlet que espera um objeto Process , como Stop-Process.

Quando você usa os parâmetros Module e FileVersionInfo juntos, esse cmdlet retorna um objeto FileVersionInfo com informações sobre a versão do arquivo de todos os módulos.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

Name
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
Id
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
InputObject
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Name

Especifica um ou mais processos por nome do processo. Você pode especificar vários nomes de processo separados por vírgulas e usar caracteres curinga. Usar o -Name parâmetro é opcional.

Propriedades do parâmetro

Tipo:

String[]

Valor padrão:None
Dá suporte a curingas:True
DontShow:False
Aliases:ProcessName

Conjuntos de parâmetros

Name
Cargo:0
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False
NameWithUserName
Cargo:0
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

Process

Você pode redirecionar objetos process 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 System.Diagnostics.FileVersionInfo .

ProcessModule

Se você usar o parâmetro Module , sem o parâmetro FileVersionInfo , esse cmdlet retornará um objeto System.Diagnostics.ProcessModule .

Observações

O PowerShell inclui os seguintes aliases para Get-Process:

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

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

Aviso

Quando você usa Get-Process para obter um processo de 64 bits na versão de 32 bits do PowerShell, propriedades como Path e MainModule do objeto Process retornado são $null. Você deve usar a versão de 64 bits do PowerShell ou a classe Win32_Process .

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

No Windows, você pode usar a classe WMI (Instrumentação de Gerenciamento do Windows) Win32_Process no PowerShell como alternativa a Get-Process. Para obter mais informações, consulte:

A exibição padrão de um objeto Process é uma exibição de tabela que inclui as colunas a seguir.

  • NPM(K): a quantidade de memória não paginada que o processo está usando, em quilobytes.
  • PM(M): a quantidade de memória paginável que o processo está usando, em megabytes.
  • WS(M): o tamanho do conjunto de trabalho do processo, em megabytes. O conjunto de trabalho consiste nas páginas de memória que foram referenciadas recentemente pelo processo.
  • 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.
  • SI: A ID da sessão do processo.
  • ProcessName: o nome do processo.

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

Para obter uma descrição de todos os membros do objeto Process disponíveis, consulte Propriedades do Processo e Métodos de Processo.