Obtiene los procesos que se están ejecutando en el equipo local o en un equipo remoto.
Sintaxis
Get-Process [[-Name] <string[]>] [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>] Get-Process -Id <Int32[]> [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>] Get-Process -InputObject <Process[]> [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]
Descripción
El cmdlet Get-Process obtiene los procesos en el equipo local o en un equipo remoto.
Sin parámetros, Get-Process obtiene todos los procesos en el equipo local. También se puede especificar un proceso concreto mediante el nombre de proceso o el identificador de proceso (PID), o pasar un objeto de proceso a través de la canalización a Get-Process.
De forma predeterminada, Get-Process 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 se pueden utilizar los parámetros de Get-Process para obtener información de la versión de archivo para el programa que se ejecuta en el proceso y para obtener los módulos cargados por el proceso.
Parámetros
-ComputerName <string[]>
Obtiene los procesos que se ejecutan en los equipos especificados. El valor predeterminado es el equipo local.
Escriba el NetBIOS, la dirección IP o el nombre de dominio completo de uno o varios equipos. Para especificar el equipo local, escriba el nombre del equipo, un punto (.), o bien, "localhost".
Este parámetro no se basa en la comunicación remota de Windows PowerShell. Puede usar el parámetro ComputerName de Get-Process incluso si el equipo no está configurado para la ejecución de comandos remotos.
¿Requerido? |
false |
¿Posición? |
named |
Valor predeterminado |
|
¿Aceptar canalización? |
true (ByPropertyName) |
¿Aceptar caracteres comodín? |
false |
-FileVersionInfo
Obtiene la información de la versión de archivo para el programa que se ejecuta en el proceso.
En Windows Vista y versiones posteriores de Windows, debe abrir Windows PowerShell con la opción "Ejecutar como administrador" para usar este parámetro en procesos que no sean de su propiedad.
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 tanto, no se pueden canalizar los resultados del comando a un cmdlet que espera un objeto de proceso, como Stop-Process.
¿Requerido? |
false |
¿Posición? |
named |
Valor predeterminado |
|
¿Aceptar canalización? |
false |
¿Aceptar caracteres comodín? |
false |
-Id <Int32[]>
Especifica uno o más procesos por Id. de proceso (PID). Para especificar varios identificadores debe separarlos con comas. Para buscar el identificador de un proceso, escriba "get-process".
¿Requerido? |
true |
¿Posición? |
named |
Valor predeterminado |
|
¿Aceptar canalización? |
true (ByPropertyName) |
¿Aceptar caracteres comodín? |
false |
-InputObject <Process[]>
Especifica uno o más objetos de proceso. Especifique la variable que contiene los objetos, o bien, escriba un comando o una expresión que obtenga los objetos.
¿Requerido? |
true |
¿Posición? |
named |
Valor predeterminado |
|
¿Aceptar canalización? |
true (ByValue) |
¿Aceptar caracteres comodín? |
false |
-Module
Obtiene los módulos cargados por los procesos.
En Windows Vista y versiones posteriores de Windows, debe abrir Windows PowerShell con la opción "Ejecutar como administrador" para usar este parámetro en procesos que no sean de su propiedad.
Este parámetro es equivalente a obtener la propiedad Modules de cada objeto de proceso. Cuando se usa este parámetro, Get-Process devuelve un objeto ProcessModule (System.Diagnostics.ProcessModule), no un objeto de proceso. Por tanto, no se pueden canalizar los resultados 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, Get-Process devuelve un objeto FileVersionInfo con información sobre la versión de archivo de todos los módulos.
¿Requerido? |
false |
¿Posición? |
named |
Valor predeterminado |
|
¿Aceptar canalización? |
false |
¿Aceptar caracteres comodín? |
false |
-Name <string[]>
Especifica uno o más procesos por nombre de proceso. Puede escribir varios nombres de proceso (separados por comas) o usar caracteres comodín. El nombre del parámetro ("Name") es opcional.
¿Requerido? |
false |
¿Posición? |
1 |
Valor predeterminado |
|
¿Aceptar canalización? |
true (ByPropertyName) |
¿Aceptar caracteres comodín? |
true |
<CommonParameters>
Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.
Entradas y salidas
El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.
Entradas |
System.Diagnostics.Process Puede canalizar un objeto de proceso a Get-Process. |
Salidas |
System.Diagnostics.Process, System.Diagnotics.FileVersionInfo, System.Diagnostics.ProcessModule De forma predeterminada, Get-Process devuelve un objeto System.Diagnostics.Process. Si se utiliza el parámetro FileVersionInfo, devuelve un objeto System.Diagnotics.FileVersionInfo. Si se utiliza el parámetro Module (sin el parámetro FileVersionInfo), devuelve un objeto System.Diagnostics.ProcessModule. |
Notas
No se pueden usar los parámetros Name, ID e InputObject en el mismo comando.
También puede hacer referencia a Get-Process mediante sus alias integrados, "ps" y "gps". Para obtener más información, vea about_Aliases.
También puede usar las propiedades y los métodos del objeto Win32_Process de WMI de Windows PowerShell. Para obtener información, vea Get-WmiObject y el SDK de Instrumental de administración de Windows (WMI).
La presentación predeterminada de un proceso es una tabla que incluye las siguientes columnas:
-- Handles: el número de identificadores abiertos por el proceso.
-- NPM(K): la cantidad de memoria no paginada usada por el proceso, en kilobytes.
-- PM(K): la cantidad de memoria paginable usada por el proceso, en kilobytes.
-- WS(K): el tamaño del espacio de trabajo del proceso, en kilobytes. El espacio de trabajo contiene las páginas de la memoria a las que el proceso ha hecho referencia recientemente.
-- VM(M): la cantidad de memoria virtual usada por el proceso, en megabytes. La memoria virtual incluye el almacenamiento en los archivos de paginación en el disco.
-- CPU(s): la cantidad de tiempo de procesador usado por el proceso en todos los procesadores, en segundos.
-- ID: el identificador (PID) del proceso.
-- ProcessName: el nombre del proceso.
Para ver explicaciones de los conceptos relacionados con 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. Para obtener más información, vea Format-Table.
Ejemplo 1
C:\PS>Get-Process Descripción ----------- Este comando obtiene una lista de todos los procesos que se están ejecutando en el equipo local. Para obtener una definición de cada columna, vea la sección "Notas adicionales" del tema de Ayuda de Get-Help.
Ejemplo 2
C:\PS>Get-Process winword, explorer | format-list * Descripción ----------- Este comando obtiene todos los datos disponibles acerca de los procesos Winword y Explorer en el equipo. Usa el parámetro Name para especificar los procesos, pero omite el nombre de 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 Winword y Explorer. También puede identificar los procesos por sus Id. de proceso. Por ejemplo, "get-process -id 664, 2060".
Ejemplo 3
C:\PS>get-process | where-object {$_.WorkingSet -gt 20000000} Descripción ----------- Este comando recupera todos los procesos con un espacio de trabajo superior a 20 MB. Usa el cmdlet Get-Process para obtener todos los procesos en ejecución. El operador de canalización (|) pasa los objetos de proceso al cmdlet Where-Object, que selecciona únicamente el objeto con un valor superior a 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 manera predeterminada, los valores de todas las propiedades de cantidad se miden en bytes, aunque en la presentación predeterminada se miden en kilobytes y en megabytes.
Ejemplo 4
C:\PS>$a = get-process C:\PS> get-process -inputobject $a | format-table -view priority Descripción ----------- Estos comandos muestran una lista de los procesos en el equipo en grupos de acuerdo con la clase de prioridad. El primer comando obtiene todos los procesos en el equipo y, a continuación, los almacena en la variable $a. El segundo comando usa el parámetro InputObject para pasar los objetos de proceso que se almacenan en la variable $a al cmdlet Get-Process. El operador de canalización pasa los objetos al cmdlet Format-Table, que da formato a los procesos utilizando la vista Priority. Esta y otras vistas se definen en los archivos de formato PS1XML en el directorio principal de Windows PowerShell ($pshome).
Ejemplo 5
C:\PS>get-process powershell -computername S1, localhost | ft @{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 -ne $()) { $_.CPU.ToString("N")}}}, Id, MachineName, ProcessName -auto NPM(K) PM(K) WS(K) VM(M) CPU(s) Id MachineName ProcessName ------ ----- ----- ----- ------ -- ----------- ----------- 6 23500 31340 142 1980 S1 powershell 6 23500 31348 142 4016 S1 powershell 27 54572 54520 576 4428 localhost powershell Descripción ----------- En este ejemplo se proporciona un comando Format-Table (alias = ft) que agrega la propiedad MachineName a la presentación de resultados de Get-Process estándar.
Ejemplo 6
C:\PS>get-process powershell -fileversioninfo ProductVersion FileVersion FileName -------------- ----------- -------- 6.1.6713.1 6.1.6713.1 (f... C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe Descripción ----------- Este comando utiliza el parámetro FileVersionInfo para obtener la información de versión del archivo PowerShell.exe que es el módulo principal para el proceso de PowerShell. Para ejecutar este comando con procesos que no sean de su propiedad en Windows Vista y versiones posteriores de Windows, debe abrir Windows PowerShell con la opción "Ejecutar como administrador".
Ejemplo 7
C:\PS>get-process sql* -module Descripción ----------- Este comando utiliza el parámetro Module para obtener los módulos cargados por el proceso. Este comando obtiene los módulos para los procesos cuyos nombres empiezan por "sql". Para ejecutar este comando en Windows Vista (y versiones posteriores de Windows) con procesos que no sean de su propiedad, debe iniciar Windows PowerShell con la opción "Ejecutar como administrador".
Ejemplo 8
C:\PS>$p = get-wmiobject win32_process -filter "name='powershell.exe'" C:\PS> $p.getowner() __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 3 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : Domain : DOMAIN01 ReturnValue : 0 User : user01 Descripción ----------- Este comando muestra la forma de buscar el propietario de un proceso. Dado que el objeto System.Diagnostics.Process que Get-Process devuelve no tiene una propiedad o un método que devuelve el propietario del proceso, el comando utiliza el cmdlet Get-WmiObject para obtener un objeto Win32_Process que representa el mismo proceso. El primer comando utiliza Get-WmiObject para obtener el proceso de PowerShell. Lo guarda en la variable $p. El segundo comando usa el método GetOwner para obtener el propietario del proceso en $p. El comando indica que el propietario es Domain01\user01.
Ejemplo 9
C:\PS>get-process powershell C:\PS> get-process -id $pid C:\PS> 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 C:\PS> 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 Descripción ----------- Estos comandos muestran la forma de utilizar la variable automática $pid para identificar el proceso que está hospedando la sesión de Windows PowerShell actual. Puede utilizar este método para distinguir el proceso de host de otros procesos de PowerShell que podría desear que se detuviesen o cerrasen. El primer comando obtiene todos los procesos de PowerShell en la sesión actual. El segundo comando obtiene el proceso de PowerShell que está hospedando la sesión actual.
Vea también