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.