Partilhar via


Get-Process

Obtém os processos que estão sendo executados no computador local.

Sintaxe

Name (Predefiniçã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 pelo nome do processo ou ID do processo (PID) ou canalizando 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 oferece suporte a métodos que permitem controlá-lo. Com parâmetros, você pode alterar o tipo de informações retornadas por esse cmdlet.

  • Módulo: Recupere informações para cada módulo carregado no processo.
  • FileVersionInfo: Recupere 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 biblioteca de vínculo dinâmico (DLL) 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 Classe ProcessModule.

Exemplos

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

Get-Process

Este 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 NOTAS .

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 kilobytes (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 winword processos no explorer 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 do 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 . Neste 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 ao 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 $processes na variável.

O segundo comando canaliza os objetos Process armazenados na variável para o Sort-Object cmdlet e, em $processes seguida, para o Format-Table cmdlet, que formata os processos usando o modo de 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

Este 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 neste caso é pwsh.exe.

Para usar esse comando com processos que você não possui no Windows Vista e versões posteriores do Windows, você deve executar 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

Este 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, você deve executar o PowerShell com direitos de usuário elevados (Executar como administrador).

Exemplo 8: Encontrar 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 é 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. Este método só está disponível no Windows e não requer direitos de utilizador 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 automática $PID para identificar o processo que está hospedando a sessão atual do PowerShell. Você pode usar esse método para distinguir o processo de host de outros pwsh processos que você pode querer controlar.

O primeiro comando executa todos os pwsh processos. 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 o 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 que é 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 não são de sua propriedade.

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 . Não é possível canalizar a saída produzida usando esse parâmetro para um cmdlet que espera um objeto Process , como Stop-Process.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:FV, FVI

Conjuntos de parâmetros

Name
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
Id
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
InputObject
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Id

Especifica um ou mais processos por ID de processo (PID). Você pode especificar vários IDs separados 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 dos parâmetros

Tipo:

Int32[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:PID

Conjuntos de parâmetros

Id
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False
IdWithUserName
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-IncludeUserName

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

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

NameWithUserName
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
IdWithUserName
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
InputObjectWithUserName
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-InputObject

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

Propriedades dos parâmetros

Tipo:

Process[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

InputObject
Position:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
InputObjectWithUserName
Position:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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 não são de sua propriedade.

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 . Não é possível 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 dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

Name
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
Id
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
InputObject
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Name

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

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False
Aliases:ProcessName

Conjuntos de parâmetros

Name
Position:0
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False
NameWithUserName
Position:0
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos: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 canalizar 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 .

Notas

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.

Advertência

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 obter mais informações, consulte Invoke-Command.

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

A exibição padrão de um objeto Process é um modo de exibição de tabela que inclui as seguintes colunas.

  • NPM(K): A quantidade de memória não paginada que o processo está usando, em kilobytes.
  • 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 recentemente referenciadas pelo processo.
  • CPU(s): A quantidade de tempo de processador que o processo usou em todos os processadores, em segundos.
  • Id: O ID do processo (PID) do processo.
  • SI: O 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 vistas.

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