Detener proceso: eliminar procesos usando PowerShell
El cmdlet Stop-Process PowerShell detiene el proceso si se está ejecutando. Puede finalizar el proceso si se ejecuta utilizando el nombre del proceso, el ID del proceso (PID) o el objeto del proceso para detener el proceso.
Más a menudo, tenemos una aplicación que deja de responder, e incluso después de esperar un tiempo, todavía muestra un mensaje de programa que no responde.
Hay formas de finalizar el proceso si se ejecuta usando el administrador de tareas para seleccionar el proceso y finalizarlo.
Otra opción es usar el cmdlet Stop-Process de PowerShell para finalizar un proceso por PID o nombre de proceso, o finalizar el proceso si se está ejecutando.
En este artículo, explicaré cómo detener el proceso si se ejecuta en PowerShell usando el nombre del proceso, la identificación del proceso en el sistema local.
Cmdlet de PowerShell para detener el proceso
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>]Parámetros:
Id : ID de proceso (PID), utilice comas para separar varios ID
Nombre: nombre del proceso, use comas para separar varios nombres de procesos o use caracteres comodín para obtener el nombre del proceso.
InputObject: objeto de proceso devuelto por variable o comando.
PassThru: pasa el objeto creado por Stop-Process a través de la canalización a otro comando
Forzar: detiene el proceso a la fuerza sin una confirmación inmediata.
Confirmar: solicita confirmación para ejecutar el comando.
Nota: El cmdlet Stop-Process de PowerShell solo detiene los procesos que se ejecutan en la computadora local.
Entendamos Detener proceso en PowerShell con ejemplos.
Elimine el proceso si se ejecuta por nombre usando PowerShell
Puede eliminar todas las instancias del proceso si se ejecuta por nombre de proceso en la computadora local usando el comando Detener proceso a continuación
Stop-Process -Name "notepad"El comando anterior, use el parámetro Nombre para especificar el nombre del proceso como bloc de notas.
Stop-Process elimina todas las instancias de una aplicación de bloc de notas.
Cada instancia de la aplicación Bloc de notas tiene su propio PID. Detendrá todas las instancias de una aplicación de bloc de notas, ya que tiene el mismo nombre.
Consejo interesante: ¡Cómo utilizar base64 para codificar el archivo en PowerShell!
Detener el proceso si se ejecuta mediante PID usando PowerShell
Puede finalizar el proceso mediante la identificación del proceso usando Stop-Process como se indica a continuación
Stop-Process -Id 38592 -Confirm -PassThruEn el comando de PowerShell anterior, Stop-Process usa PID para eliminar el proceso especificado por el PID del proceso.
Confirmar parámetro solicita confirmación para realizar la acción o no. Si selecciona Sí o Sí a todos, detendrá un proceso si se está ejecutando.
Al confirmar, finalizará el proceso e imprimirá el siguiente resultado
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
247 15 3360 15164 0.27 38592 1 notepad Detener el proceso utilizando el objeto de proceso
Si desea detener el proceso utilizando un objeto de proceso devuelto por un comando o almacenado en una variable, use el parámetro InputObject para pasar un objeto al cmdlet Stop-Process.
Utilice el cmdlet Get-Process para obtener un proceso y almacenar el objeto del proceso en una variable; ejecute el siguiente comando
# Get Process and store object in variable
$ProcessObject = Get-Process -Name notepad
# Pass object to Stop-Process using InputObject parameter
Stop-Process -InputObject $ProcessObject
# Check if process stopped or not
Get-Process | Where-Object {$_.HasExited}En el comando de PowerShell anterior, el cmdlet Stop-Process de PowerShell finaliza el proceso y el siguiente comando comprueba si el proceso finalizado todavía existe o no.
Detener proceso que no es propiedad del usuario actual
Si desea detener el proceso que no es propiedad del usuario actual, deberá abrir PowerShell con la opción Ejecutar como administrador.
Usando el parámetro Forzar el proceso finalizará.
Si intenta finalizar un proceso que no es propiedad del usuario actual sin una opción de administrador, se mostrará un mensaje como
Stop-Process : Cannot stop process 'notepad(1353)' because of the following error: Access is denied
At line:1 char:3Utilice el siguiente script para detener el proceso que no pertenece al usuario actual
Get-Process -Name notepad | Stop-Process -ForceEl primer comando obtiene el bloc de notas del proceso mediante el cmdlet Get-Process y lo pasa al segundo comando.
El segundo comando usa el cmdlet Stop-Process para cerrar el objeto de proceso con fuerza usando el parámetro Force.
Nota: Abra PowerShell y ejecútelo como administrador para detener el proceso. Sólo los miembros del grupo de administradores pueden detener el proceso que no es propiedad del usuario actual.
Consejo interesante: ¡Cómo obtener el nombre de usuario del proceso en PowerShell!
Conclusión
Espero que el artículo anterior le ayude a utilizar el cmdlet Stop-Process de PowerShell para eliminar el proceso especificado por nombre o ID de proceso (PID) o eliminar el proceso que no es propiedad del usuario actual.
Puede encontrar más temas sobre los comandos de PowerShell Active Directory y los conceptos básicos de PowerShell en la página de inicio de ShellGeek.
