Get-Process
Obtém os processos que estão em execução no computador local.
Syntax
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 Get-Process
cmdlet 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 por nome do processo ou PID (ID do processo) ou passar um objeto de processo pelo pipeline para esse 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 iniciar e parar o processo. Você também pode usar os parâmetros do Get-Process
cmdlet para obter informações de versão do arquivo para o programa que é 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 Winword e 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 Format-List
cmdlet , que exibe todas as propriedades disponíveis (*
) do Winword e Explorer objetos de processo.
Você também pode identificar os processos pelas suas IDs. 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 de mais de 20 MB. Ele usa o Get-Process
cmdlet para obter todos os processos em execução. O operador de pipeline (|
) passa os objetos de processo para o Where-Object
cmdlet , que seleciona apenas o objeto com um valor maior que 20.000.000 bytes para a propriedade WorkingSet .
WorkingSet é 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 são em bytes, ainda que 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 $A
variável .
O segundo comando redireciona o objeto Process armazenado na $A
variável para o Get-Process
cmdlet e, em seguida, para o Format-Table
cmdlet , que formata os processos usando a exibição Priority .
O modo de exibição Prioridade e outros modos de exibição são definidos nos arquivos de formato PS1XML no diretório base 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, MachineName, ProcessName -AutoSize
NPM(K) PM(K) WS(K) VM(M) CPU(s) Id MachineName ProcessName
------ ----- ----- ----- ------ -- ----------- -----------
6 23500 31340 142 1.70 1980 . pwsh
6 23500 31348 142 2.75 4016 . pwsh
27 54572 54520 576 5.52 4428 . pwsh
Este exemplo recupera processos do computador local e de um computador remoto (S1). Os processos recuperados são canalizados para o Format-Table
comando que adiciona a propriedade MachineName à exibição de saída padrão Get-Process
.
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 pwsh.exe
arquivo que é o módulo main 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).
A saída revela que o proprietário é 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 $PID
variável automática 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 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 está hospedando a sessão atual.
Exemplo 10: Obter todos os processos que têm um título de janela main 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 de 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 Get-Process
comando para o Get-Member
cmdlet 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 em 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.
Para obter informações de versão do arquivo para um processo em um computador remoto, use o Invoke-Command
cmdlet .
Usar esse parâmetro é equivalente 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 redirecionar a saída do comando para um cmdlet que espera um objeto de processo, como Stop-Process
.
Type: | SwitchParameter |
Aliases: | FV, FVI |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Especifica um ou mais processos pela ID do processo (PID). Para especificar IDs múltiplas, use vírgulas para separá-las. Para localizar o PID de um processo, digite Get-Process
.
Type: | Int32[] |
Aliases: | PID |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-IncludeUserName
Indica que o valor UserName do objeto Process é retornado com os resultados do comando .
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Especifica um ou mais objetos de processo. Insira uma variável que contém os objetos ou digite um comando ou uma expressão que obtém os objetos.
Type: | Process[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Module
Indica que esse cmdlet obtém os módulos que foram carregados pelos processos.
No Windows Vista e em 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.
Para obter os módulos que foram carregados por um processo em um computador remoto, use o Invoke-Command
cmdlet .
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 ProcessModuleSystem.Diagnostics.ProcessModule, não um objeto de processo. Portanto, você não pode redirecionar 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Especifica um ou mais processos pelo 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.
Type: | String[] |
Aliases: | ProcessName |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Entradas
Você pode redirecionar um objeto de processo para esse cmdlet.
Saídas
System.Diagnostics.Process, System.Diagnostics.FileVersionInfo, System.Diagnostics.ProcessModule
Por padrão, esse cmdlet retorna um objeto System.Diagnostics.Process . Se você usar o parâmetro FileVersionInfo , ele retornará um objeto System.Diagnostics.FileVersionInfo . Se você usar o parâmetro Module , sem o parâmetro FileVersionInfo , ele retornará um objeto System.Diagnostics.ProcessModule .
Observações
- Você também pode consultar esse cmdlet por seus aliases internos e
ps
gps
. Para obter mais informações, consulte about_Aliases. - 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.
- Você pode usar as propriedades e os métodos do objeto WMI (Instrumentação de Gerenciamento do Windows) Win32_Process no PowerShell. Para obter informações, consulte
Get-WmiObject
e o SDK do WMI. - 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.
- Identificadores: 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 de 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. Memória virtual inclui armazenamento nos arquivos de paginação em 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 na Ajuda e no Centro de Suporte e a Ajuda do 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 seus próprios modos de exibição.