Get-Process
Obtém os processos que estão sendo executados no computador local ou em um computador remoto.
Sintaxe
Get-Process
[[-Name] <String[]>]
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Get-Process
[[-Name] <String[]>]
[-IncludeUserName]
[<CommonParameters>]
Get-Process
-Id <Int32[]>
[-IncludeUserName]
[<CommonParameters>]
Get-Process
-Id <Int32[]>
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Get-Process
-InputObject <Process[]>
[-IncludeUserName]
[<CommonParameters>]
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 por nome de processo ou ID de processo (PID) ou passar um objeto de processo através do pipeline para este cmdlet.
Por padrão, esse cmdlet retorna um objeto de processo que tem informações detalhadas sobre o processo e oferece suporte a métodos que permitem iniciar e parar o processo.
Você também pode usar os parâmetros do cmdlet Get-Process
para obter informações de versão do arquivo para o programa que é executado no processo e para obter os módulos que o processo carregou.
Exemplos
Exemplo 1: Obter uma lista de todos os processos ativos no computador local
Get-Process
Este 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
Exemplo 2: Obter todos os dados disponíveis sobre um ou mais processos
Get-Process winword, explorer | Format-List *
Este 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 cmdlet Format-List
, que exibe todas as propriedades disponíveis *
dos objetos de processo Winword e Explorer.
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 20000000}
Este comando obtém todos os processos que têm um conjunto de trabalho maior que 20 MB.
Ele usa o cmdlet Get-Process
para obter todos os processos em execução.
O operador de pipeline |
passa os objetos de processo para o cmdlet Where-Object
, 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 estão em bytes, mesmo que a exibição padrão os liste em kilobytes 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, em seguida, armazena-os na variável $A
.
O segundo comando canaliza o objeto Process armazenado na variável $A
para o cmdlet Get-Process
e, em seguida, para o cmdlet Format-Table
, que formata os processos usando a exibição Priority.
O modo de exibição de prioridade
Exemplo 5: Adicionar uma propriedade à exibição de saída de Get-Process padrão
Get-Process powershell -ComputerName S1, localhost | 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 S1 powershell
6 23500 31348 142 2.75 4016 S1 powershell
27 54572 54520 576 5.52 4428 localhost powershell
Este exemplo recupera processos do computador local e de um computador remoto (S1).
Os processos recuperados são canalizados para o comando Format-Table
que adiciona a propriedade MachineName à exibição de saída de Get-Process
padrão.
Exemplo 6: Obter informações de versão para um processo
Get-Process powershell -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
6.1.6713.1 6.1.6713.1 (f... C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
Este comando usa o parâmetro FileVersionInfo para obter as informações de versão para o arquivo powershell.exe que é o módulo principal 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
Este comando usa o parâmetro Module para obter os módulos que foram carregados pelo processo. Este 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 em 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: Encontrar o proprietário de um processo
PS C:\> Get-Process powershell -IncludeUserName
Handles WS(K) CPU(s) Id UserName ProcessName
------- ----- ------ -- -------- -----------
782 132080 2.08 2188 DOMAIN01\user01 powershell
$p = Get-WmiObject Win32_Process -Filter "name='powershell.exe'"
$p.GetOwner()
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 3
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
Domain : DOMAIN01
ReturnValue : 0
User : user01
O primeiro comando mostra como encontrar 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 e terceiro comando são outra maneira de encontrar o dono de um processo.
O segundo comando usa Get-WmiObject
para obter o processo do PowerShell.
Salva-o na variável $p.
O terceiro comando usa o método GetOwner para obter o proprietário do processo em $p. 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 powershell
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
308 26 52308 61780 567 3.18 5632 powershell
377 26 62676 63384 575 3.88 5888 powershell
Get-Process -Id $PID
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
396 26 56488 57236 575 3.90 5888 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 processos do PowerShell que talvez você queira parar 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 principal e exibi-los em uma tabela
Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle -AutoSize
Este comando obtém todos os processos que têm um título de janela principal e os exibe em uma tabela com a ID do processo e o nome do processo.
A propriedade Get-Process
para o cmdlet Get-Member
Get-Process | Get-Member
.
Parâmetros
-ComputerName
Especifica os computadores para os quais esse cmdlet obtém processos ativos. O padrão é o computador local.
Digite 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, digite 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.
Tipo: | String[] |
Aliases: | Cn |
Position: | Named |
Default value: | Local computer |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | 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 abrir o PowerShell com a opção Executar como administrador para usar esse parâmetro em processos que não são de sua propriedade.
Não é possível usar o FileVersionInfo e parâmetros ComputerName do cmdlet Get-Process
no mesmo comando.
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 é equivalente a obter a propriedade MainModule.FileVersionInfo de cada objeto de processo.
Quando você usa esse parâmetro, Stop-Process
.
Tipo: | SwitchParameter |
Aliases: | FV, FVI |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Id
Especifica um ou mais processos por ID de processo (PID).
Para especificar vários IDs, use vírgulas para separá-los.
Para encontrar o PID de um processo, digite Get-Process
.
Tipo: | Int32[] |
Aliases: | PID |
Position: | Named |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-IncludeUserName
Indica que o valor UserName do objeto Process é retornado com os resultados do comando.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-InputObject
Especifica um ou mais objetos de processo. Insira uma variável que contenha os objetos ou digite um comando ou expressão que obtenha os objetos.
Tipo: | Process[] |
Position: | Named |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-Module
Indica que esse cmdlet obtém os módulos que foram carregados pelos processos.
No Windows Vista e 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 não são de sua propriedade.
Para obter os módulos que foram carregados por um processo em um computador remoto, use o cmdlet Invoke-Command
.
Esse parâmetro é equivalente a obter a propriedade 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.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Name
Especifica um ou mais processos por nome de processo. Você pode digitar vários nomes de processo (separados por vírgulas) e usar caracteres curinga. O nome do parâmetro ("Name") é opcional.
Tipo: | String[] |
Aliases: | ProcessName |
Position: | 0 |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | True |
Entradas
Você pode canalizar um objeto de processo para este 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
Notas
- Você também pode se referir a esse cmdlet por seus aliases internos, ps e 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 de Win32_Process WMI (Instrumentação de Gerenciamento do Windows) 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 seguintes colunas. Para obter uma descrição de todas as propriedades de objetos de processo, consulte de propriedades de processo na biblioteca MSDN.
- 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 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.
- VM(M): A quantidade de memória virtual que o processo está usando, em megabytes. A memória virtual inclui armazenamento nos arquivos de paginação no 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 no Centro de Ajuda e 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 suas próprias exibições.