Get-Process
Obtiene los procesos que se ejecutan en el equipo local o en un equipo remoto.
Sintaxis
Name (valor predeterminado)
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
El cmdlet Get-Process obtiene los procesos en un equipo local o remoto.
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 cmdlet Get-Process 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 de
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 de Winword 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 | pasa los datos al cmdlet Format-List, 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 conjunto de trabajo superior a 20 MB.
Usa el cmdlet Get-Process para obtener todos los procesos en ejecución.
El operador de canalización
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 están en bytes, 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 del equipo en grupos en función de su clase de prioridad.
El primer comando obtiene todos los procesos del equipo y, a continuación, los almacena en la variable $A.
El segundo comando canaliza el
La vista Prioridad y otras vistas se definen en los archivos de formato PS1XML en el directorio principal de PowerShell ($pshome).
Ejemplo 5: Agregar una propiedad a la pantalla de salida estándar Get-Process
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
En este ejemplo se recuperan los procesos del equipo local y de un equipo remoto (S1).
Los procesos recuperados se canalizan al comando Format-Table que agrega la propiedad machineName a la pantalla de salida de Get-Process estándar.
Ejemplo 6: Obtener información de versión para un proceso
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 el parámetro FileVersionInfo para obtener la información de versión del archivo powershell.exe que es el módulo principal del 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
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
El primer comando muestra cómo buscar el propietario de un proceso. El parámetro IncludeUserName requiere derechos de usuario elevados (ejecutar como administrador). La salida revela que el propietario es Domain01\user01.
El segundo y el tercer comando son otra manera de encontrar el propietario de un proceso.
El segundo comando usa Get-WmiObject para obtener el proceso de PowerShell.
Lo guarda en la variable $p.
El tercer comando usa el método GetOwner para obtener el propietario del proceso en $p. 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 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
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 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 ventana principal y los muestra en una tabla con el identificador de proceso y el nombre del proceso.
La propiedad mainWindowTitle Get-Process al cmdlet Get-MemberGet-Process | Get-Member.
Parámetros
-ComputerName
Especifica los equipos para los que este cmdlet obtiene procesos activos. El valor predeterminado es el equipo local.
Escriba el nombre NetBIOS, una dirección IP o un nombre de dominio completo (FQDN) de uno o varios equipos. Para especificar el equipo local, escriba el nombre del equipo, un punto (.) o localhost.
Este parámetro no se basa en la comunicación remota de Windows PowerShell. Puede usar el parámetro ComputerName de este cmdlet aunque el equipo no esté configurado para ejecutar comandos remotos.
Propiedades de parámetro
| Tipo: | String[] |
| Valor predeterminado: | Local computer |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | CN |
Conjuntos de parámetros
Name
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
Id
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
InputObject
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-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.
No puede usar los parámetros FileVersionInfo y ComputerName del cmdlet Get-Process en el mismo comando.
Para obtener información de versión de archivo para un proceso en un equipo remoto, use el cmdlet Invoke-Command.
El uso de este parámetro equivale a obtener la propiedad MainModule.FileVersionInfo de cada objeto de proceso.
Cuando se usa este parámetro, Get-Process devuelve un objeto FileVersionInfoSystem.Diagnostics.FileVersionInfo, no un objeto process.
Por lo tanto, no puede canalizar la salida del comando a un cmdlet que espera un objeto de proceso, como Stop-Process.
Propiedades de 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 |
| Obligatorio: | 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 |
| Obligatorio: | 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 |
| Obligatorio: | 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).
Para especificar varios identificadores, use comas para separar los identificadores.
Para buscar el PID de un proceso, escriba Get-Process.
Propiedades de parámetro
| Tipo: | Int32[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | PID |
Conjuntos de parámetros
IdWithUserName
| Posición: | Named |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
Id
| Posición: | Named |
| Obligatorio: | 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 el valor UserName del objeto Process
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
NameWithUserName
| Posición: | Named |
| Obligatorio: | 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 |
| Obligatorio: | 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 |
| Obligatorio: | 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 de proceso. Escriba una variable que contenga los objetos, o escriba un comando o expresión que obtenga los objetos.
Propiedades de parámetro
| Tipo: | Process[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
InputObjectWithUserName
| Posición: | Named |
| Obligatorio: | True |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
InputObject
| Posición: | Named |
| Obligatorio: | 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 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.
Para obtener los módulos cargados por un proceso en un equipo remoto, use el cmdlet Invoke-Command.
Este parámetro es equivalente a obtener la propiedad modules 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 del archivo de todos los módulos.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
Name
| Posición: | Named |
| Obligatorio: | 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 |
| Obligatorio: | 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 |
| Obligatorio: | 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 escribir varios nombres de proceso (separados por comas) y usar caracteres comodín. El nombre del parámetro ("Name") es opcional.
Propiedades de parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
| Alias: | ProcessName |
Conjuntos de parámetros
Name
| Posición: | 0 |
| Obligatorio: | 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 |
| Obligatorio: | 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 un objeto de proceso a este cmdlet.
Salidas
System.Diagnostics.Process, System.Diagnostics.FileVersionInfo, System.Diagnostics.ProcessModule
De forma predeterminada, este cmdlet devuelve un objeto System.Diagnostics.Process. Si usa el parámetro FileVersionInfo, devuelve un objeto System.Diagnostics.FileVersionInfo. Si usa el parámetro Module, sin el parámetro FileVersionInfo, devuelve un objeto System.Diagnostics.ProcessMod ule.
Notas
- También puede hacer referencia a este cmdlet mediante sus alias integrados, ps y gps. Para más información, vea about_Aliases.
- 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.
- 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
Get-WmiObjecty el SDK de WMI. - La presentación predeterminada de un proceso es una tabla que incluye las columnas siguientes. Para obtener una descripción de todas las propiedades de los objetos de proceso, consulte Propiedades de proceso en MSDN Library.
- Identificadores: número de identificadores que el proceso ha abierto.
- NPM(K): cantidad de memoria no paginada que usa el proceso, en kilobytes.
- PM(K): cantidad de memoria paginable que usa el proceso, en kilobytes.
- WS(K): tamaño del conjunto de trabajo del proceso, en kilobytes. El conjunto de trabajo consta de las páginas de memoria a las que hace referencia recientemente 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 el 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 obtener explicaciones sobre los conceptos relacionados con los procesos, consulte el Glosario en el Centro de ayuda y soporte técnico y la Ayuda para el 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.