Get-Process
Obtém os processos que estão sendo executados no computador local ou em um computador remoto.
Sintaxe
Name (Predefinição)
Get-Process
[[-Name] <String[]>]
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
NameWithUserName
Get-Process
[[-Name] <String[]>]
[-IncludeUserName]
[<CommonParameters>]
IdWithUserName
Get-Process
-Id <Int32[]>
[-IncludeUserName]
[<CommonParameters>]
Id
Get-Process
-Id <Int32[]>
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
InputObjectWithUserName
Get-Process
-InputObject <Process[]>
[-IncludeUserName]
[<CommonParameters>]
InputObject
Get-Process
-InputObject <Process[]>
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Description
O cmdlet Get-Process obtém os processos em um computador local ou remoto.
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.
O modo de exibição Prioridade e outros modos de exibição são definidos nos arquivos de .ps1xml formato no diretório base do PowerShell ().$PSHOME
Exemplo 5: Adicionar uma propriedade à exibição de saída padrão 'Get-Process'
Get-Process -Name powershell | Format-Table -Property @(
'Handles'
@{ Name = 'NPM(K)'; Expression = { [int] ($_.NPM / 1KB) } }
@{ Name = 'PM(K)'; Expression = { [int] ($_.PM / 1KB) } }
@{ Name = 'WS(K)'; Expression = { [int] ($_.WS / 1KB) } }
@{ Name = 'CPU(s)'; Expression = { if ($_.CPU) { $_.CPU.ToString('N') } } }
'Id'
@{ Name = 'SI'; Expression = 'SessionId' }
'ProcessName'
'StartTime'
) -AutoSize
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName StartTime
------- ------ ----- ----- ------ -- -- ----------- ---------
655 34 69424 83424 2.20 4240 1 powershell 4/14/2025 10:40:10 AM
572 36 68768 57260 7.41 4968 1 powershell 4/13/2025 3:33:50 PM
405 26 38144 30340 1.80 8776 1 powershell 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 powershell -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
10.0.19041.320 10.0.19041.32... C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Este comando usa o parâmetro FileVersionInfo para obter informações de versão do arquivo para o módulo principal do powershell processo. O módulo principal é o arquivo usado para iniciar o processo, que neste caso é powershell.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 powershell -IncludeUserName
Handles WS(K) CPU(s) Id UserName ProcessName
------- ----- ------ -- -------- -----------
782 132080 2.08 2188 DOMAIN01\user01 powershell
Get-CimInstance -ClassName Win32_Process -Filter "name='powershell.exe'" |
Invoke-CimMethod -MethodName GetOwner
Domain ReturnValue User PSComputerName
------ ----------- ---- --------------
DOMAIN01 0 user01
O primeiro comando mostra como obter o proprietário de um processo. O parâmetro IncludeUserName requer direitos de usuário elevados (Executar como administrador). 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 powershell processos e o método invocado GetOwner() retorna informações sobre o Domínio e o Usuário do processo. Esse método 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 powershell
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
561 44 47564 40740 6.48 2604 1 powershell
642 40 72040 24372 23.53 3576 1 powershel
Get-Process -Id $PID
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
647 40 72464 30716 23.67 3576 1 powershell
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 powershell processos que você pode querer controlar.
O primeiro comando executa todos os powershell processos. O segundo comando obtém o powershell 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
-ComputerName
Especifica os computadores para os quais esse cmdlet obtém processos em execução. O padrão é o computador local.
Especifique o nome NetBIOS, um endereço IP ou um nome de domínio totalmente qualificado (FQDN) de um ou mais computadores. Para especificar o computador local, use o nome do computador, um ponto (.) ou localhost.
Esse parâmetro não depende da comunicação remota do Windows PowerShell. Você pode usar o parâmetro ComputerName deste cmdlet mesmo que seu computador não esteja configurado para executar comandos remotos.
Propriedades dos parâmetros
| Tipo: | String[] |
| Default value: | Local computer |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
| Aliases: | CN |
Conjuntos de parâmetros
Name
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | True |
| Valor dos restantes argumentos: | False |
Id
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | True |
| Valor dos restantes argumentos: | False |
InputObject
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | True |
| Valor dos restantes argumentos: | False |
-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.
Não é possível usar os parâmetros FileVersionInfo e ComputerName juntos.
Para obter informações de versão de arquivo para um processo em um computador remoto, use o cmdlet Invoke-Command.
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
IdWithUserName
| Position: | Named |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | True |
| Valor dos restantes argumentos: | False |
Id
| 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.
Você deve executar o PowerShell com direitos de usuário elevados (Executar como administrador) para usar esse parâmetro.
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
InputObjectWithUserName
| Position: | Named |
| Obrigatório: | True |
| Valor do pipeline: | True |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
InputObject
| 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.
Para obter os módulos carregados por um processo em um computador remoto, use o Invoke-Command cmdlet.
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 Windows PowerShell inclui os seguintes aliases para Get-Process:
gpsps
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.
Você pode usar a classe de Win32_Process WMI (Instrumentação de Gerenciamento do Windows) no PowerShell como uma 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.
- Handles: 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 kilobytes.
- PM(K): A quantidade de memória paginável que o processo está usando, 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 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.