Stop-Process
Detiene uno o más procesos en ejecución.
Sintaxis
Stop-Process
[-Id] <Int32[]>
[-PassThru]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Process
-Name <String[]>
[-PassThru]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Process
[-InputObject] <Process[]>
[-PassThru]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
El Stop-Process
cmdlet detiene uno o varios procesos en ejecución. Puede especificar un proceso por nombre de proceso o identificador de proceso (PID) o pasar un objeto de proceso a Stop-Process
. Stop-Process
funciona solo en procesos que se ejecutan en el equipo local.
En Windows Vista y versiones posteriores del sistema operativo Windows, para detener un proceso que no es propiedad del usuario actual, debe iniciar PowerShell mediante la opción Ejecutar como administrador. Además, no se le pedirá confirmación a menos que especifique el parámetro Confirm .
Ejemplos
Ejemplo 1: Detener todas las instancias de un proceso
PS C:\> Stop-Process -Name "notepad"
Este comando detiene todas las instancias del proceso de Bloc de notas del equipo. Cada instancia del Bloc de notas se ejecuta en su propio proceso. Usa el parámetro Name para especificar los procesos, todos los cuales tienen el mismo nombre. Si tuviera que usar el parámetro Id para detener los mismos procesos, tendría que enumerar los identificadores de proceso de cada instancia del Bloc de notas.
Ejemplo 2: Detener una instancia específica de un proceso
PS C:\> Stop-Process -Id 3952 -Confirm -PassThru
Confirm
Are you sure you want to perform this action?
Performing operation "Stop-Process" on Target "notepad (3952)".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help
(default is "Y"):y
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
41 2 996 3212 31 3952 notepad
Este comando detiene una instancia determinada del proceso de Bloc de notas. Usa el identificador de proceso 3952 para identificar el proceso. El parámetro Confirm le dirige a PowerShell para que le pida antes de que detenga el proceso. Dado que el mensaje incluye el nombre del proceso además de su identificador, se recomienda este procedimiento.
El parámetro PassThru pasa el objeto de proceso al formateador para mostrarlo. Sin este parámetro, no habría ninguna presentación después de un Stop-Process
comando.
Ejemplo 3: Detener un proceso y detectar que se ha detenido
calc
$p = Get-Process -Name "calc"
Stop-Process -InputObject $p
Get-Process | Where-Object {$_.HasExited}
Esta serie de comandos inicia y detiene el Calc
proceso y, a continuación, detecta los procesos que se han detenido.
El primer comando inicia una instancia de la calculadora.
El segundo comando usa Get-Process
obtiene un objeto que representa el Calc
proceso y, a continuación, lo almacena en la $p
variable .
El tercer comando detiene el Calc
proceso. Usa el parámetro InputObject para pasar el objeto a Stop-Process
.
El último comando obtiene todos los procesos en el equipo que se estaban ejecutando pero que ahora están detenidos. Get-Process
Usa para obtener todos los procesos del equipo. El operador de canalización (|
) pasa los resultados al Where-Object
cmdlet , que selecciona los que el valor de la propiedad HasExited es $True. HasExited es solo una propiedad de objetos de proceso. Para buscar todas las propiedades, escriba Get-Process | Get-Member
.
Ejemplo 4: Detener un proceso no propiedad del usuario actual
PS> Get-Process -Name "lsass" | Stop-Process
Stop-Process : Cannot stop process 'lsass (596)' because of the following error: Access is denied
At line:1 char:34
+ Get-Process -Name "lsass" | Stop-Process <<<<
[ADMIN]: PS> Get-Process -Name "lsass" | Stop-Process
Warning!
Are you sure you want to perform this action?
Performing operation 'Stop-Process' on Target 'lsass(596)'
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
[ADMIN]: PS> Get-Process -Name "lsass" | Stop-Process -Force
[ADMIN]: PS>
Estos comandos muestran el efecto de usar Force para detener un proceso que no es propiedad del usuario.
El primer comando usa Get-Process
para obtener el proceso de Lsass. Un operador de canalización envía el proceso para Stop-Process
detenerlo. Como se muestra en la salida de ejemplo, se produce un error en el primer comando con un mensaje acceso denegado, ya que este proceso solo se puede detener por un miembro del grupo Administrador en el equipo.
Cuando PowerShell se abre mediante la opción Ejecutar como administrador y se repite el comando, PowerShell le pedirá confirmación.
El segundo comando especifica Force para suprimir el símbolo del sistema. Como resultado, el proceso se detiene sin confirmación.
Parámetros
-Confirm
Le solicita su confirmación antes de ejecutar el cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Force
Detiene los procesos especificados sin pedir confirmación. De forma predeterminada, Stop-Process
solicita confirmación antes de detener cualquier proceso que no sea propiedad del usuario actual.
Para buscar el propietario de un proceso, use el Get-CimInstance
cmdlet para obtener un objeto Win32_Process que representa el proceso y, a continuación, use el método GetOwner del objeto .
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Id
Especifica los identificadores de proceso de los procesos que se van a detener. Para especificar varios identificadores, use comas para separar los identificadores. Para buscar el PID de un proceso, escriba Get-Process
.
Tipo: | Int32[] |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-InputObject
Especifica los objetos de proceso que se van a detener. Especifique una variable que contenga los objetos o escriba un comando o una expresión que obtenga los objetos.
Tipo: | Process[] |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Name
Especifica los nombres de proceso de los procesos que se van a detener. Puede escribir varios nombres de proceso, separados por comas o usar caracteres comodín.
Tipo: | String[] |
Alias: | ProcessName |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | True |
-PassThru
Devuelve un objeto que representa el proceso. De forma predeterminada, este cmdlet no genera ningún resultado.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-WhatIf
Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.
Tipo: | SwitchParameter |
Alias: | wi |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
Puede canalizar un objeto de proceso a este cmdlet.
Salidas
None
De forma predeterminada, este cmdlet no devuelve ninguna salida.
Cuando se usa el parámetro PassThru , este cmdlet devuelve un objeto Process que representa el proceso detenido.
Notas
PowerShell incluye los siguientes alias para Stop-Process
:
- Todas las plataformas:
spps
- Windows:
kill
También puede usar las propiedades y los métodos del objeto instrumental de administración de Windows (WMI) Win32_Process en Windows PowerShell. Para obtener más información, consulte Get-CimInstance
y el SDK de WMI.
- Al detener procesos, tenga en cuenta que detener un proceso puede detener el proceso y los servicios que dependen del proceso. En los casos más extremos, podría detenerse Windows al detener un proceso.