Get-Process

Obtiene los procesos que se ejecutan en el equipo 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

El Get-Process cmdlet 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 determinado por nombre de proceso o identificador de proceso (PID) o pasar un objeto de proceso a través de la canalización a este cmdlet.

De forma predeterminada, este cmdlet devuelve un objeto de proceso que tiene información detallada sobre el proceso y admite métodos que permiten iniciar y detener el proceso. También puede usar los parámetros del Get-Process cmdlet para obtener información de versión de archivo para el programa que se ejecuta en el proceso y para obtener los módulos cargados por el proceso.

Ejemplos

Ejemplo 1: Obtener una lista de todos los procesos activos en el equipo local

Get-Process

Este comando obtiene una lista de todos los procesos activos que se ejecutan en el equipo local. Para obtener una definición de cada columna, consulte la sección Notas .

Ejemplo 2: Obtener todos los datos disponibles sobre uno o varios procesos

Get-Process winword, explorer | Format-List *

Este comando obtiene todos los datos disponibles sobre los procesos Winword y Explorer del equipo. Usa el parámetro Name para especificar los procesos, pero omite el nombre del parámetro opcional. El operador de canalización (|) pasa los datos al Format-List cmdlet , que muestra todas las propiedades disponibles (*) de los objetos de proceso de Winword y Explorer.

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 20000000}

Este comando obtiene todos los procesos que tienen un espacio de trabajo de más de 20 MB. Usa el Get-Process cmdlet para obtener todos los procesos en ejecución. El operador de canalización (|) pasa los objetos de proceso al cmdlet , que selecciona solo el objeto con un valor superior a Where-Object 20 000 000 bytes para la propiedad WorkingSet .

WorkingSet es una de las muchas propiedades de los objetos de proceso. Para ver todas las propiedades, escriba Get-Process | Get-Member. De forma predeterminada, los valores de todas las propiedades de cantidad se expresan en bytes, incluso aunque la presentación predeterminada las muestra en kilobytes y megabytes.

Ejemplo 4: Enumeración de procesos en el equipo en grupos en función de la prioridad

$A = Get-Process
$A | Get-Process | Format-Table -View priority

Estos comandos enumeran los procesos en el equipo en grupos basados en su clase de prioridad. El primer comando obtiene todos los procesos del equipo y, a continuación, los almacena en la $A variable .

El segundo comando canaliza el objeto Process almacenado en la $A variable al Get-Process cmdlet y, a continuación, al cmdlet , que da formato a Format-Table los procesos mediante la vista Prioridad.

La vista Prioridad y otras vistas se definen en los archivos de formato PS1XML en el directorio principal de PowerShell ($pshome).

Ejemplo 5: Adición de una propiedad a la pantalla de salida de Get-Process estándar

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, ProcessName, StartTime -AutoSize

NPM(K)  PM(K)  WS(K)   VM(M) CPU(s)    Id ProcessName StartTime
------  -----  -----   ----- ------    -- ----------- ---------
   143 239540 259384 2366162 22.73  12720 pwsh        12/5/2022 3:21:51 PM
   114  61776 104588 2366127 11.45  18336 pwsh        12/5/2022 7:30:53 AM
   156  77924  82060 2366185 10.47  18812 pwsh        12/5/2022 7:30:52 AM
    85  48216 115192 2366074 1.14   24428 pwsh        12/8/2022 9:14:15 AM

En este ejemplo se recuperan los procesos del equipo local. Los procesos recuperados se canalizan al Format-Table comando que agrega la propiedad StartTime a la pantalla de salida estándar Get-Process .

Ejemplo 6: Obtener información de versión para un proceso

Get-Process pwsh -FileVersionInfo

ProductVersion   FileVersion      FileName
--------------   -----------      --------
6.1.2            6.1.2            C:\Program Files\PowerShell\6\pwsh.exe

Este comando usa el parámetro FileVersionInfo para obtener la información de versión del pwsh.exe archivo que es el módulo principal para el proceso de PowerShell.

Para ejecutar este comando con procesos que no posee en Windows Vista y versiones posteriores de Windows, debe abrir PowerShell con la opción Ejecutar como administrador .

Ejemplo 7: Obtención de módulos cargados con el proceso especificado

Get-Process SQL* -Module

Este comando usa el parámetro Module para obtener los módulos cargados por el proceso. Este comando obtiene los módulos de los procesos que tienen nombres que comienzan por SQL.

Para ejecutar este comando en Windows Vista y versiones posteriores de Windows con procesos que no posee, debe iniciar PowerShell con la opción Ejecutar como administrador .

Ejemplo 8: Buscar el propietario de un proceso

Get-Process pwsh -IncludeUserName

Handles      WS(K)   CPU(s)     Id UserName            ProcessName
-------      -----   ------     -- --------            -----------
    782     132080     2.08   2188 DOMAIN01\user01     pwsh

Este comando muestra cómo encontrar al propietario de un proceso. En Windows, el parámetro IncludeUserName requiere derechos de usuario elevados (Ejecutar como Administración istrator). La salida revela que el propietario es Domain01\user01.

Ejemplo 9: Usar una variable automática para identificar el proceso que hospeda la sesión actual

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

Estos comandos muestran cómo usar la $PID variable automática 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 procesos de PowerShell que podría querer detener o cerrar.

El primer comando obtiene todos los procesos de PowerShell en la sesión actual.

El segundo comando obtiene el proceso de PowerShell 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 {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle -AutoSize

Este comando obtiene todos los procesos que tienen un título de la ventana principal y los muestra en una tabla con el identificador de proceso y el nombre del proceso.

La propiedad mainWindowTitle es solo una de las muchas propiedades útiles del objeto Process que Get-Process devuelve. Para ver todas las propiedades, canalice los resultados de un Get-Process comando al Get-Member cmdlet 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 abrir PowerShell con la opción Ejecutar como administrador para usar este parámetro en los procesos que no posee.

El uso de este parámetro es equivalente a obtener la propiedad MainModule.FileVersionInfo de cada objeto de proceso. Cuando se usa este parámetro, Get-Process devuelve un objeto FileVersionInfo System.Diagnostics.FileVersionInfo, no un objeto de proceso. Por lo tanto, no puede canalizar la salida del comando a un cmdlet que espera un objeto de proceso, como Stop-Process.

Type:SwitchParameter
Aliases:FV, FVI
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

Especifica uno o varios procesos por el identificador de proceso (PID). Para especificar varios identificadores, use comas para separar los identificadores. Para buscar el PID de un proceso, escriba Get-Process.

Type:Int32[]
Aliases:PID
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-IncludeUserName

Indica que el valor UserName del objeto Process se devuelve con los resultados del comando.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Especifica uno o más objetos de proceso. Especifique una variable que contenga los objetos o escriba un comando o una expresión que obtenga los objetos.

Type:Process[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Module

Indica que este cmdlet obtiene los módulos cargados por los procesos.

En Windows Vista y versiones posteriores de Windows, debe abrir PowerShell con la opción Ejecutar como administrador para usar este parámetro en los procesos que no posee.

Este parámetro es equivalente a obtener la propiedad Modules de cada objeto de proceso. Cuando se usa este parámetro, este cmdlet devuelve un objeto ProcessModule System.Diagnostics.ProcessModule, no un objeto de proceso. Por lo tanto, no puede canalizar la salida del comando a un cmdlet que espera un objeto de proceso, como Stop-Process.

Cuando se usan los parámetros Module y FileVersionInfo en el mismo comando, este cmdlet devuelve un objeto FileVersionInfo con información sobre la versión de archivo de todos los módulos.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Especifica uno o varios procesos por nombre del proceso. Puede escribir varios nombres de proceso (separados por comas) y usar caracteres comodín. El nombre del parámetro (Name) es opcional.

Type:String[]
Aliases:ProcessName
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

Entradas

Process

Puede canalizar un objeto de proceso 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 FileVersionInfo .

ProcessModule

Si usa el parámetro Module , sin el parámetro FileVersionInfo , este cmdlet devuelve un objeto ProcessModule .

Notas

PowerShell incluye los siguientes alias para Get-Process:

  • Todas las plataformas:
    • gps
  • Windows:
    • ps

En equipos que ejecutan una versión de 64 bits de Windows, la versión de 64 bits de PowerShell obtiene solo módulos de proceso de 64 bits y la versión de 32 bits de PowerShell solo obtiene módulos de proceso de 32 bits.

Para obtener información del proceso desde un equipo remoto, use el Invoke-Command cmdlet . Para obtener más información, vea Invoke-Command.

Puede usar las propiedades y los métodos del objeto instrumental de administración de Windows (WMI) Win32_Process en PowerShell. Para obtener información, consulte Win32_Process.

La presentación predeterminada de un proceso es una tabla que incluye las siguientes columnas. Para obtener una descripción de todas las propiedades de los objetos de proceso, vea Propiedades del proceso.

  • Identificadores: número de identificadores que el proceso ha abierto.
  • NPM(K):la cantidad de memoria no paginada que usa el proceso, en kilobytes.
  • PM(K):la cantidad de memoria paginable que usa el proceso, en kilobytes.
  • WS(K):tamaño del conjunto de trabajo del proceso, en kilobytes. El espacio de trabajo consta de las páginas de memoria a las que recientemente hizo referencia el proceso.
  • VM(M):la cantidad de memoria virtual que usa el proceso, en megabytes. La memoria virtual incluye almacenamiento en los archivos de paginación en disco.
  • CPU(es): cantidad de tiempo de procesador que el proceso ha usado en todos los procesadores, en segundos.
  • Id. : identificador de proceso (PID) del proceso.
  • ProcessName: el nombre del proceso. Para explicaciones de los conceptos relacionados con los procesos, vea el Glosario del Centro de ayuda y soporte técnico y la Ayuda del Administrador de tareas.

También puede usar las vistas alternativas integradas de los procesos disponibles con Format-Table, como StartTime y Priority, y puede diseñar sus propias vistas.