Comando en windows para eliminar procesos en ejecución: taskkill

Hace unos días hablamos de un comando en windows para listar los procesos en ejecución, el objetivo era determinar la cantidad de memoria ocupada por un proceso  o un grupo de procesos. Bien, pero ¿que ocurre si lo que queremos es listar un proceso en ejecución y posteriormente eliminar este proceso? Por ejemplo, podriamos necesitar un script que compruebe si un determinado proceso se está ejecutando, y en tal caso eliminarlo. Incluso podriamos necesitar un script que se ejecute cada cierto tiempo, que compruebe la memoria ocupada por un determinado proceso y en caso de que esa memoria sobrepase unos límites se encargue de matar el proceso. Las opciones son variadas, y cuando lo que queramos sea eliminar procesos sin usar el administrador de tareas de Windows podremos usar el comando taskkill

Taskkill es un comando que nos va a permitir eliminar procesos en ejecución usando el PID del proceso o su nombre. El PID del proceso es un número asociado a cada proceso en ejecución y que lo identifica de forma unívoca. Los parámetros que podemos usar con el comando taskkill son los siguientes:

taskkill /PID identidadproceso Detiene un proceso indicando el PID. Es posible saber el PID de un proceso usando el comando tasklist
taskkill /IM nombreTarea Detiene un proceso indicando su nombre.
taskkill /FI filtro Permite usar un filtro para seleccionar varios procesos.
taskkill /T Termina un proceso y todos los procesos secundarios iniciados por él. Sería el equivalente a la opción de “Finalizar el árbol de procesos…” del administrador de tareas de Windows
taskkill /F Se finaliza el proceso de forma forzada

Por ejemplo, con el siguiente comando podríamos finalizar el proceso de Bloc de notas:

taskkill /F /IM notepad.exe

Si suponemos que al bloc de notas se le ha asignado un PID igual a 754 el siguiente comando hará la misma función que el anterior:

taskkill /PID 754

De esta forma podriamos terminar un proceso y todos los subprocesos asociados:

taskkill /F /IM cmd.exe /T

El siguiente comando finalizaria cualquier proceso en windows que no esté respondiendo:

taskkill /f /fi "status eq Not Responding"

Ahora otro ejemplo práctico, supongamos que el explorador de windows se ha quedado bloqueado. Pues con el siguiente comando sería posible terminar el proceso e inmediatamente volverlo a abrir:

taskkill /F /IM explorer.exe & start explorer.exe