Stop-Process

Detiene uno o más procesos en ejecución.

Sintaxis

Stop-Process [-Id] <Int32[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Process -InputObject <Process[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Process -Name <string[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Descripción

El cmdlet Stop-Process detiene uno o más procesos en ejecución. Se puede especificar un proceso por nombre de proceso o Id. de proceso (PID) o pasar un objeto de proceso a Stop-Process. Stop-Process solo funciona en los procesos que se ejecutan en el equipo local.

En Windows Vista y versiones posteriores de Windows, para detener un proceso del que el usuario actual no es propietario, se debe iniciar Windows PowerShell con la opción "Ejecutar como administrador". Además, se solicita confirmación a menos que se utilice el parámetro Force.

Parámetros

-Force

Detiene los procesos especificados sin solicitar confirmación. De forma predeterminada, Stop-Process solicita confirmación antes de detener cualquier proceso del que el usuario actual no sea propietario.

Para buscar el propietario de un proceso, utilice el cmdlet Get-WmiMethod para obtener un objeto Win32_Process que representa el proceso y, a continuación, utilice el método GetOwner del objeto.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

False

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Id <Int32[]>

Especifica los Id. de proceso de los procesos que se van a detener. Para especificar varios identificadores debe separarlos con comas. Para buscar el identificador de un proceso, escriba "Get-Process". El nombre del parámetro ("Id") es opcional.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-InputObject <Process[]>

Detiene los procesos representados por los objetos de proceso especificados. 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

-Name <string[]>

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.

¿Requerido?

true

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-PassThru

Devuelve un objeto que representa el proceso. De forma predeterminada, este cmdlet no genera resultados.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Confirm

Solicita confirmación antes de ejecutar el comando.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-WhatIf

Describe lo que ocurriría si se ejecutara el comando sin ejecutarlo realmente.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<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 Stop-Process.

Salidas

Ninguno o System.Diagnostics.Process

Cuando se utiliza el parámetro PassThru, Stop-Process devuelve un objeto System.Diagnostics.Process que representa el proceso detenido. En caso contrario, este cmdlet no genera resultados.

Notas

También puede hacer referencia a Stop-Process mediante sus alias integrados, "kill" y "spps". Para obtener más información, vea about_Aliases.

También puede usar las propiedades y los métodos del objeto Win32_Process de Instrumental de administración de Windows (WMI) de Windows PowerShell. Para obtener más información, vea Get-WmiObject y el SDK de WMI.

Cuando detenga procesos, tenga en cuenta que la detención de un proceso puede detener el proceso y los servicios que dependen del proceso. En un caso extremo, detener un proceso podría detener Windows.

Ejemplo 1

C:\PS>stop-process -name notepad

Descripción
-----------
Este comando detiene todas las instancias del proceso Notepad (el Bloc de notas) en el equipo. (Cada instancia de Notepad se ejecuta en su propio proceso). Utiliza el parámetro Name para especificar los procesos; todos ellos tienen el mismo nombre. Si fuera a utilizar el parámetro ID para detener los mismos procesos, tendría que enumerar los identificadores de proceso de cada instancia de Notepad.





Ejemplo 2

C:\PS>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

Descripción
-----------
Este comando detiene una instancia específica del proceso Notepad. Usa el Id. de proceso, 3952, para identificar el proceso. El parámetro Confirm hace que Windows PowerShell pregunte al usuario antes de detener el proceso. Como en la pregunta se incluye el nombre del proceso y el Id. de proceso, esto es lo recomendable. El parámetro PassThru pasa el objeto de proceso al formateador para la presentación. Sin este parámetro no se mostraría nada al ejecutar un comando Stop-Process.





Ejemplo 3

C:\PS>calc

c:\PS>$p = get-process calc

c:\PS>stop-process -inputobject $p

c:\PS>get-process | where-object {$_.HasExited}

Descripción
-----------
Esta serie de comandos inicia y detiene el proceso Calc y después detecta los procesos que se han detenido. 

El primer comando ("calc") inicia una instancia de la calculadora. El segundo comando ("$p = get-process calc") usa el cmdlet Get-Process para obtener un objeto que represente al proceso Calc y almacenarlo en la variable $p. El tercer comando ("stop-process -inputobject $p") usa el cmdlet Stop-Process para detener el proceso Calc. Usa el parámetro InputObject para pasar el objeto a Stop-Process. 

El último comando obtiene todos los procesos del equipo que se estaban ejecutando y que ahora están detenidos. Usa el cmdlet Get-Process para obtener todos los procesos del equipo. El operador de canalización (|) pasa los resultados al cmdlet Where-Object, que selecciona los que tengan el valor de la propiedad HasExited establecida en TRUE. HasExited es una de las propiedades de los objetos de proceso. Para buscar todas las propiedades, escriba "get-process | get-member".





Ejemplo 4

C:\PS>get-process 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 lsass  | stop-process <<<<

[ADMIN]: C:\PS> get-process 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]: C:\PS> get-process lsass | stop-process -force
[ADMIN]: C:\PS>

Descripción
-----------
Estos comandos muestran el efecto de utilizar el parámetro Force para detener un proceso del que el usuario no es propietario.

El primer comando utiliza el cmdlet Get-Process para obtener el proceso Lsass. Un operador de canalización envía el proceso al cmdlet Stop-Process para detenerlo. Como se muestra en el resultado del ejemplo, se produce un error en el primer comando con el mensaje "Acceso denegado", porque el proceso sólo lo puede detener un miembro del grupo Administrador en el equipo.

Cuando Windows PowerShell se abre con la opción "Ejecutar como administrador" y el comando se repite, Windows PowerShell solicita confirmación.

El segundo comando usa el parámetro Force para suprimir el símbolo del sistema. Como consecuencia, el proceso se detiene sin confirmación.





Vea también

Conceptos

Get-Process
Start-Process
Stop-Process
Wait-Process
Debug-Process