Get-Process
Obtiene los procesos que se ejecutan en el equipo local.
Sintaxis
Name (Es el valor predeterminado).
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
El cmdlet Get-Process obtiene los procesos en un equipo local.
Sin parámetros, este cmdlet obtiene todos los procesos del equipo local. También puede especificar un proceso específico por nombre de proceso o identificador de proceso (PID) o canalizando un objeto System.Diagnostics.Process a este cmdlet.
De forma predeterminada, este cmdlet devuelve un objeto Process que tiene información detallada sobre el proceso y admite métodos que le permiten controlarlo. Con parámetros, puede cambiar el tipo de información devuelta por este cmdlet.
- Módulo: recupere la información de cada módulo cargado en el proceso.
- FileVersionInfo: recupere la información de la versión del archivo para el módulo principal del proceso.
Nota:
Un módulo es un archivo ejecutable o una biblioteca de vínculos dinámicos (DLL) cargado en un proceso. Un proceso tiene uno o varios módulos. El módulo principal es el módulo que se usa para iniciar inicialmente el proceso. Para obtener más información, vea ProcessModule (clase).
Ejemplos
Ejemplo 1: Obtener una lista de todos los procesos en ejecución en el equipo local
Get-Process
Este comando obtiene una lista de todos los procesos en ejecución en el equipo local. Para obtener una definición de cada columna para mostrar, consulte la sección NOTES .
Para ver todas las propiedades de un objeto Process , use Get-Process | Get-Member. De forma predeterminada, PowerShell muestra determinados valores de propiedad mediante unidades como kilobytes (K) y megabytes (M). Los valores reales cuando se accede a ellos con el operador de acceso a miembros (.) están en bytes.
Ejemplo 2: Mostrar información detallada sobre uno o varios procesos
Get-Process winword, explorer | Format-List *
Esta canalización muestra información detallada sobre los winword procesos y explorer en el equipo. Usa el parámetro Name para especificar los procesos, pero omite el nombre del parámetro opcional. El operador de canalización (|) canaliza los objetos Process al Format-List cmdlet , que muestra todas las propiedades disponibles (*) y sus valores para cada objeto.
También puede identificar los procesos por sus identificadores de proceso. Por ejemplo, Get-Process -Id 664, 2060.
Ejemplo 3: Obtener todos los procesos con un conjunto de trabajo mayor que un tamaño especificado
Get-Process | Where-Object { $_.WorkingSet -gt 20971520 }
Get-Process | Where-Object WorkingSet -GT 20MB
El Get-Process cmdlet devuelve los procesos en ejecución. La salida se canaliza al cmdlet , que selecciona los objetos con un valor WorkingSet superior a Where-Object 20 971 520 bytes.
En el primer ejemplo, Where-Object usa un scriptblock para comparar la propiedad WorkingSet de cada objeto Process . En el segundo ejemplo, el Where-Object cmdlet usa la sintaxis simplificada para comparar la propiedad WorkingSet . En este caso, -GT es un parámetro, no un operador de comparación. En el segundo ejemplo también se usa un sufijo literal numérico como alternativa concisa a 20971520. En PowerShell, MB representa un multiplicador de mebibyte (MiB).
20MB es igual a 20 971 520 bytes.
Ejemplo 4: Mostrar procesos en el equipo en grupos en función de la prioridad
$processes = Get-Process
$processes | Sort-Object { $_.PriorityClass } | Format-Table -View Priority
Estos comandos muestran los procesos en el equipo en grupos en función de su clase de prioridad. El primer comando obtiene todos los procesos del equipo y los almacena en la $processes variable .
El segundo comando canaliza los objetos Process almacenados en la $processes variable al Sort-Object cmdlet y, a continuación, al cmdlet , que da formato a Format-Table los procesos mediante la vista Prioridad .
Ejemplo 5: Agregar una propiedad a la pantalla de salida predeterminada "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
En este ejemplo se recuperan los procesos del equipo local y se canaliza cada objeto Process al Format-Table cmdlet .
Format-Table vuelve a crear la presentación de salida predeterminada de un objeto Process mediante una combinación de nombres de propiedad y propiedades calculadas. La pantalla incluye una propiedad StartTime adicional que no está presente en la pantalla predeterminada.
Ejemplo 6: Obtener información de versión para un proceso
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 el parámetro FileVersionInfo para obtener información de la versión del archivo para el módulo principal del pwsh proceso. El módulo principal es el archivo que se usa para iniciar el proceso, que en este caso es pwsh.exe.
Para usar este comando con procesos que no posee en Windows Vista y versiones posteriores de Windows, debe ejecutar PowerShell con derechos de usuario elevados (ejecutar como administrador).
Ejemplo 7: Obtención de módulos cargados con el proceso especificado
Get-Process -Name SQL* -Module
Este comando usa el parámetro Module para obtener los módulos cargados por todos los procesos con un nombre que comienza por SQL.
Para usar este comando con procesos que no posee en Windows Vista y versiones posteriores de Windows, debe ejecutar PowerShell con derechos de usuario elevados (ejecutar como administrador).
Ejemplo 8: Buscar el propietario de un proceso
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
El primer comando muestra cómo obtener el propietario de un proceso. La salida revela que el propietario es DOMAIN01\user01.
La segunda canalización muestra una manera diferente de obtener el propietario de un proceso mediante Get-CimInstance y Invoke-CimMethod. La clase Win32_Process con un filtro recupera los pwsh procesos y el método invocado GetOwner() devuelve información sobre el dominio y el usuario del proceso. Este método solo está disponible en Windows y no requiere derechos de usuario elevados.
Ejemplo 9: Usar una variable automática para identificar el proceso que hospeda la sesión actual
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
Estos comandos muestran cómo usar la variable automática $PID para identificar el proceso que hospeda la sesión actual de PowerShell. Puede usar este método para distinguir el proceso de host de otros pwsh procesos que puede querer controlar.
El primer comando obtiene todos los pwsh procesos en ejecución. El segundo comando obtiene el pwsh proceso que hospeda la sesión actual.
Ejemplo 10: Obtener todos los procesos que tienen un título de ventana principal y mostrarlos en una tabla
Get-Process |
Where-Object -Property MainWindowTitle |
Format-Table -Property Id, Name, MainWindowTitle -AutoSize
Esta canalización obtiene todos los procesos que tienen un título de ventana principal y los muestra en una tabla con el identificador y el nombre del proceso.
MainWindowTitle es una de las muchas propiedades útiles del tipo de objeto Diagnostics.Process que Get-Process devuelve. Para ver todas las propiedades, use Get-Process | Get-Member.
Parámetros
-FileVersionInfo
Indica que este cmdlet obtiene la información de la versión del archivo para el programa que se ejecuta en el proceso.
En Windows Vista y versiones posteriores de Windows, debe ejecutar PowerShell con derechos de usuario elevados (ejecutar como administrador) para usar este parámetro en los procesos que no posee.
El uso de este parámetro es el mismo que el acceso a la propiedad MainModule.FileVersionInfo de cada objeto Process . Cuando se usa este parámetro, Get-Process devuelve un objeto FileVersionInfo , no un objeto Process . No se puede canalizar la salida generada mediante este parámetro a un cmdlet que espera un objeto Process , como Stop-Process.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | FV, FVI |
Conjuntos de parámetros
Name
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
Id
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
InputObject
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Id
Especifica uno o varios procesos por identificador de proceso (PID). Puede especificar varios identificadores separados por comas. Para obtener el PID de un proceso, use Get-Process. Para obtener el PID de la sesión actual de PowerShell, use $PID.
Propiedades del parámetro
| Tipo: | Int32[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | PID |
Conjuntos de parámetros
Id
| Posición: | Named |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
IdWithUserName
| Posición: | Named |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-IncludeUserName
Indica que este comando agrega una propiedad UserName a cada objeto Process devuelto.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
NameWithUserName
| Posición: | Named |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
IdWithUserName
| Posición: | Named |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
InputObjectWithUserName
| Posición: | Named |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-InputObject
Especifica uno o varios objetos Process . Use una variable que contenga los objetos, o un comando o expresión que obtiene los objetos.
Propiedades del parámetro
| Tipo: | Process[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
InputObject
| Posición: | Named |
| Mandatory: | True |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
InputObjectWithUserName
| Posición: | Named |
| Mandatory: | True |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Module
Indica que este cmdlet obtiene los módulos que el proceso ha cargado.
En Windows Vista y versiones posteriores de Windows, debe ejecutar PowerShell con derechos de usuario elevados (ejecutar como administrador) para usar este parámetro en los procesos que no posee.
El uso de este parámetro es el mismo que el acceso a la propiedad Modules de cada objeto Process .
Cuando se usa este parámetro, Get-Process devuelve un objeto ProcessModule , no un objeto Process . No se puede canalizar la salida generada mediante este parámetro a un cmdlet que espera un objeto Process , como Stop-Process.
Cuando se usan los parámetros Module y FileVersionInfo juntos, este cmdlet devuelve un objeto FileVersionInfo con información sobre la versión de archivo de todos los módulos.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
Name
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
Id
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
InputObject
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Name
Especifica uno o varios procesos por nombre de proceso. Puede especificar varios nombres de proceso separados por comas y usar caracteres comodín. El uso del -Name parámetro es opcional.
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
| Alias: | ProcessName |
Conjuntos de parámetros
Name
| Posición: | 0 |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
NameWithUserName
| Posición: | 0 |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
Process
Puede canalizar objetos Process a este cmdlet.
Salidas
Process
De forma predeterminada, este cmdlet devuelve un objeto System.Diagnostics.Process.
FileVersionInfo
Si usa el parámetro FileVersionInfo , este cmdlet devuelve un objeto System.Diagnostics.FileVersionInfo .
ProcessModule
Si usa el parámetro Module , sin el parámetro FileVersionInfo , este cmdlet devuelve un objeto System.Diagnostics.ProcessModule .
Notas
PowerShell incluye los siguientes alias para Get-Process:
- Todas las plataformas:
gps
- Windows:
ps
En equipos que ejecutan Windows de 64 bits, la versión de 64 bits de PowerShell obtiene el módulo principal y los módulos de proceso de 64 bits. La versión de 32 bits de PowerShell solo obtiene módulos de proceso de 32 bits.
Advertencia
Cuando se usa Get-Process para obtener un proceso de 64 bits en la versión de 32 bits de PowerShell, las propiedades como Path y MainModule del objeto Process devuelto son $null. Debe usar la versión de 64 bits de PowerShell o la clase Win32_Process .
Para obtener información del proceso desde un equipo remoto, use el cmdlet Invoke-Command. Para obtener más información, vea Invoke-Command.
En Windows, puede usar la clase Instrumental de administración de Windows (WMI) Win32_Process en PowerShell como alternativa a Get-Process. Para obtener más información, consulte:
La presentación predeterminada de un objeto Process es una vista de tabla que incluye las columnas siguientes.
- NPM(K): la cantidad de memoria no paginada que usa el proceso, en kilobytes.
- PM(M):la cantidad de memoria paginable que usa el proceso, en megabytes.
- WS(M):tamaño del conjunto de trabajo del proceso, en megabytes. El conjunto de trabajo consta de las páginas de memoria a las que hace referencia recientemente el proceso.
- CPU: la cantidad de tiempo de procesador que el proceso ha usado en todos los procesadores, en segundos.
- id.: el identificador de proceso (PID) del proceso.
- SI: el identificador de sesión del proceso.
- ProcessName: el nombre del proceso.
Puede usar las vistas alternativas integradas para los objetos Process disponibles con Format-Table, como StartTime y Priority. También puede diseñar sus propias vistas.
Para obtener una descripción de todos los miembros del objeto Process disponibles, vea Propiedades de proceso y Métodos de proceso.