Guía completa para cerrar procesos con TASKKILL en Windows

Última actualización: marzo 8, 2026
Autor: Isaac
  • TASKKILL permite cerrar procesos locales y remotos por PID, nombre de imagen y filtros avanzados.
  • El uso combinado de TASKLIST y TASKKILL facilita localizar y terminar procesos conflictivos.
  • Los filtros /FI aportan un control muy fino para seleccionar procesos por estado, usuario o recursos.
  • PowerShell ofrece la alternativa Stop-Process, pero TASKKILL sigue siendo clave en administración de Windows.

Uso de TASKKILL en Windows

Cuando un programa se queda colgado, consume demasiada memoria o bloquea un puerto crítico, lo último que apetece es pelearse con ventanas que no responden. En estos casos, conocer bien cómo cerrar procesos con la herramienta TASKKILL desde la consola de Windows te puede ahorrar mucho tiempo y más de un reinicio forzado.

Además, en entornos profesionales o de administrador de sistemas es bastante habitual tener que matar procesos en equipos remotos, filtrar por usuario, memoria o estado y automatizar todas estas tareas en scripts. Todo eso se puede hacer con TASKKILL y con su complemento perfecto, TASKLIST, además de alternativas en PowerShell como Stop-Process, que también veremos con detalle.

Artículo relacionado:
Solución para Terminar Procesos en Windows 10: Taskkill

Qué es TASKKILL y para qué sirve exactamente

El comando TASKKILL es una herramienta de línea de comandos incluida en Windows (desde Windows XP en adelante) que permite terminar uno o varios procesos activos. Puedes seleccionar esos procesos tanto por su identificador numérico (PID) como por el nombre del ejecutable o “imagen” (por ejemplo, notepad.exe).

La gran ventaja frente al clásico Administrador de tareas es que se puede usar en scripts, en sesiones remotas y con filtros muy precisos. Además, combinado con tasklist te permite ver primero qué está corriendo y después matar de forma quirúrgica lo que te interesa, incluso forzando el cierre o incluyendo los procesos secundarios que ese proceso haya lanzado.

De forma resumida, TASKKILL se usa para tres escenarios muy típicos: cerrar una aplicación que no responde, liberar recursos matando procesos que consumen demasiado, y detener procesos conflictivos en equipos remotos donde quizá ni siquiera tienes acceso gráfico cómodo.

Sintaxis completa del comando TASKKILL

La sintaxis general de la herramienta es bastante flexible. La forma estándar del comando TASKKILL en sistemas Windows modernos es:

taskkill ]]] { }

En este esquema general, puedes combinar parámetros para atacar procesos locales o remotos, identificar qué matar por PID o por nombre de imagen y decidir si se fuerza el cierre y si se incluyen procesos hijo. Vamos a desglosar cada parámetro importante para que no se quede nada en el aire.

Parámetros principales de TASKKILL

Casi siempre terminarás usando una combinación de estos modificadores, así que conviene tenerlos muy claros porque son los que marcan el comportamiento real del comando:

  • /s <equipo>: indica el nombre DNS o la IP de un equipo remoto. No se usan barras invertidas aquí (es decir, no pongas \\equipo, solo equipo). Si no lo usas, la acción se realiza en el equipo local.
  • /u <dominio\usuario>: permite ejecutar el comando con las credenciales de otro usuario. Solo tiene efecto si también has usado /s. Por defecto se usan los permisos de la sesión actual.
  • /p <contraseña>: contraseña asociada a la cuenta indicada con /u. Si la omites, el sistema la pedirá de forma interactiva.
  • /pid <IdProceso>: especifica el PID (Process ID) del proceso que quieres cerrar. Puedes repetir /pid varias veces para indicar varios procesos a la vez.
  • /im <NombreImagen>: indica el nombre de la imagen o ejecutable (notepad.exe, chrome.exe, etc.). Admite comodines como * cuando se combina con filtros.
  • /f: fuerza el cierre del proceso. Es útil cuando una aplicación no responde, pero también implica que podría perderse información no guardada.
  • /t: termina el proceso indicado y también todos los procesos secundarios que haya iniciado (árbol de procesos).
  ¿Qué es una imagen vectorial nombrar tres características?

Un detalle importante es que, cuando trabajas con equipos remotos, el cierre siempre se hace de forma forzada, uses o no el modificador /f. Es una decisión de diseño de la herramienta que conviene tener en mente para no llevarte sorpresas.

Filtrar procesos con /FI en TASKKILL

El parámetro /fi <filtro> es el que convierte TASKKILL en algo realmente potente, porque te deja seleccionar dinámicamente qué procesos coinciden con ciertos criterios: uso de CPU, memoria, usuario que los ejecuta, nombre de servicio asociado, título de la ventana, etc.

La sintaxis del filtro suele ser una cadena entre comillas con el formato NombreFiltro Operador Valor, por ejemplo:

/fi "USERNAME eq administrador"

Algunos de los nombres de filtro más habituales que puedes usar con TASKKILL son:

  • STATUS (eq, ne): valores como RUNNING, NOT RESPONDING o UNKNOWN. Sirve para matar solo procesos congelados, por ejemplo.
  • IMAGENAME (eq, ne): coincide con el nombre de la imagen, por ejemplo notepad.exe.
  • PID (eq, ne, gt, lt, ge, le): permite seleccionar rangos de PIDs, útil cuando quieres terminar procesos masivos a partir de un cierto ID.
  • SESSION y SESSIONNAME: filtran por número o nombre de sesión de Windows.
  • CPUtime (eq, ne, gt, lt, ge, le): tiempo de CPU consumido, en formato HH:MM:SS. Muy útil para localizar procesos que llevan demasiado rato ejecutándose.
  • MEMUSAGE (eq, ne, gt, lt, ge, le): uso de memoria en KB, perfecto para “cazar” procesos que se han desmadrado.
  • USERNAME (eq, ne): filtra por usuario en formato usuario o dominio\usuario.
  • SERVICES: por nombre de servicio hospedado en el proceso.
  • WINDOWTITLE: por el título de la ventana, por ejemplo una ventana concreta de un navegador.
  • MODULES: por nombre de DLL cargada en el proceso.

Hay algunas limitaciones importantes con los filtros: cuando estás trabajando contra un sistema remoto, no se admiten los filtros WINDOWTITLE ni STATUS, así que si intentas usarlos se ignoran. Además, el uso del comodín * junto a /im solo se acepta si has aplicado al menos un filtro.

Ejemplos prácticos de uso de TASKKILL

Para que todo lo anterior no se quede en pura teoría, vamos a ver casos reales que cubren desde situaciones sencillas hasta escenarios más elaborados, incluyendo procesos locales, remotos, filtrados por usuario y cierres masivos.

Si ya conoces el PID de varios procesos que quieras cerrar, puedes hacerlo en una sola orden:

taskkill /pid 1230 /pid 1241 /pid 1253

En este ejemplo, se indican tres PIDs distintos en una misma línea. Windows intentará terminar cada uno de ellos; si alguno no se puede cerrar (por permisos u otro motivo) mostrará el error correspondiente sin afectar al resto.

Imagina ahora que quieres matar todas las instancias de Notepad abiertas por la cuenta del sistema y además forzando el cierre. El comando sería algo tal que así:

taskkill /f /fi "USERNAME eq NT AUTHORITY\SYSTEM" /im notepad.exe

Aquí combinamos un filtro por usuario con la imagen concreta y el modificador /f de cierre forzado. Úsalo con cuidado, porque se llevará por delante cualquier bloc de notas que esté utilizando esa cuenta, con o sin datos guardados.

Supongamos ahora que estás en tu equipo, pero necesitas acabar con procesos problemáticos en un servidor remoto llamado Srvmain. Quieres terminar todos los procesos cuyo nombre de imagen empiece por note, usando las credenciales de un usuario concreto:

taskkill /s srvmain /u maindom\hiropln /p p@ssW23 /fi "IMAGENAME eq note*" /im *

En este caso, la combinación de /s, /u y /p permite conectarse al equipo remoto, se filtran solo los procesos con nombre que empiece por note y, gracias a /im *, se termina todo lo que cumpla ese filtro. Recuerda que en remoto el cierre siempre será forzado.

  ¿Cómo se activa la barra de inicio?

Otro escenario típico es cuando deseas finalizar un proceso concreto y además todo su árbol de procesos hijo, pero sólo si pertenecen a un usuario determinado:

taskkill /pid 2134 /t /fi "username eq administrator"

Gracias al parámetro /t, se acaba no solo con el PID 2134 sino con cualquier proceso iniciado directamente por él. Esto puede ser muy útil con algunas aplicaciones que lanzan varios procesos auxiliares.

Por último, un ejemplo de cierre masivo basado en un rango de PIDs: imagina que quieres matar todos los procesos cuyo PID sea mayor o igual que 1000, sin importar el nombre de imagen:

taskkill /f /fi "PID ge 1000" /im *

Es un comando muy agresivo (cierre masivo), así que úsalo solo en entornos de laboratorio o muy controlados, pero sirve para ilustrar cómo combinar rangos de PIDs con cierres forzados y comodines en el nombre de imagen.

Uso combinado de TASKLIST y TASKKILL

Antes de matar nada, suele ser imprescindible saber qué está corriendo realmente en el sistema. Para eso está TASKLIST, la herramienta hermana de TASKKILL, que lista procesos activos tanto en el equipo local como en equipos remotos.

Con tasklist puedes ver el nombre de la imagen, el PID, el uso de memoria, el nombre de la sesión y otra información relevante. Esto facilita muchísimo identificar procesos que consumen demasiados recursos o que se han quedado colgados, sobre todo en servidores donde no tienes interfaz gráfica abierta.

La sintaxis básica de TASKLIST es:

TASKLIST ]]] | /SVC | /V]

Algunos puntos clave de TASKLIST que encajan muy bien con TASKKILL son:

  • /S sistema: indica el equipo remoto del que quieres listar procesos.
  • /U usuario y /P : permiten usar otras credenciales, igual que en TASKKILL.
  • /M : muestra las tareas que usan una DLL o ejecutable concreto.
  • /SVC: enseña los servicios hospedados en cada proceso.
  • /APPS: lista aplicaciones de la Tienda de Windows con sus procesos asociados.
  • /V: salida detallada (verbose), con más información por tarea.
  • /FI filtro: mismo concepto de filtros que en TASKKILL, para ver sólo ciertos procesos.
  • /FO formato: formato de salida, pudiendo elegir entre TABLE, LIST o CSV.
  • /NH: oculta el encabezado de columnas, muy útil cuando vas a procesar la salida después.

Los filtros de TASKLIST son prácticamente los mismos que has visto en TASKKILL: STATUS, IMAGENAME, PID, SESSION, SESSIONNAME, CPUTIME, MEMUSAGE, USERNAME, SERVICES, WINDOWTITLE, MODULES, etc. También aquí los filtros WINDOWTITLE y STATUS dejan de tener efecto cuando trabajas contra equipos remotos.

Una forma típica de trabajo sería: primero usas TASKLIST para localizar el proceso conflictivo y su PID, y a continuación aplicas TASKKILL con ese PID o con un filtro equivalente. Por ejemplo, si el bloc de notas aparece en el listado con PID 4348, podrías cerrarlo simplemente así:

TASKKILL /PID 4348

Si la situación se da en un equipo remoto, el flujo es el mismo pero añadiendo los modificadores adecuados. Para listar procesos en un servidor remoto llamado SRVDC02 con credenciales de dominio, podrías lanzar:

TASKLIST /s SRVDC02 /u dom\Administrador /p contraseña

Después, una vez localizado el PID del proceso problemático, por ejemplo de nuevo 4348, lo terminas desde ese mismo equipo originario con:

TASKKILL /PID 4348 /s SRVDC02 /u dom\Administrador /p contraseña

Como ves, la combinación TASKLIST + TASKKILL ofrece una gestión muy precisa de procesos tanto locales como remotos, sin necesidad de abrir el Administrador de tareas ni conectarte con escritorio remoto si no quieres.

Cerrar procesos desde CMD frente a PowerShell

Aunque TASKKILL se usa desde la consola clásica de Windows (cmd.exe), no estás obligado a limitarte a ella. También puedes cerrar procesos desde PowerShell, tanto usando TASKKILL como aprovechando el cmdlet nativo Stop-Process, que aporta una sintaxis más integrada en el entorno PowerShell.

  ¿Qué es Rasterizar el objeto inteligente?

Si estás trabajando en CMD puro y duro, para matar un proceso por PID bastaría con algo como:

taskkill /F /PID 4027

Imagina que previamente has utilizado netstat para saber qué proceso está bloqueando un puerto TCP concreto (por ejemplo, una aplicación que se apropia del puerto 80). Una vez obtengas el PID, usarás TASKKILL /F para obligar a cerrar ese proceso y liberar el puerto.

También en CMD puedes matar por nombre de imagen en lugar de por PID. Para cerrar todas las instancias de Notepad abiertas:

taskkill /F /IM notepad.exe

Ahora bien, si das el salto a PowerShell, tienes a tu disposición el cmdlet Stop-Process, que hace básicamente lo mismo pero con sintaxis más propia de PowerShell. Por ejemplo, para terminar un proceso por ID podrías usar:

Stop-Process -Force -Id 3572

O, si prefieres, por nombre de proceso en PowerShell:

Stop-Process -Name notepad -Force

Este cmdlet tiene además alias muy cortos, como kill y spps, que a muchos administradores les resultan más cómodos. Por ejemplo:

kill -Name notepad

Al final, la elección entre CMD y PowerShell depende de tu entorno de trabajo y gustos personales. Para scripts nuevos y automatización avanzada, PowerShell suele ser más recomendable, pero TASKKILL sigue siendo imprescindible, sobre todo cuando se trata de compatibilidad y herramientas ya existentes.

Escenarios avanzados con procesos remotos

En la vida real, no todo son procesos colgados en tu propio PC. Es muy frecuente tener que cerrar procesos en servidores o equipos de usuario final de forma remota, especialmente cuando un proceso arranca con el sistema y se come todos los recursos nada más iniciar sesión.

Imagina que tienes un servidor que lanza un proceso en el arranque de Windows y, al poco de iniciar, ese proceso empieza a “tragarse” CPU y memoria hasta volver el sistema casi inutilizable. A veces ni siquiera te da tiempo a abrir el Administrador de tareas desde la propia máquina.

En un entorno de dominio con dos servidores, por ejemplo SRVDC01 y SRVDC02, podrías estar en SRVDC01 y querer diagnosticar y cerrar un proceso conflictivo que se está ejecutando en SRVDC02. El flujo típico podría ser:

  1. Desde SRVDC01, listar procesos del servidor remoto:

TASKLIST /s SRVDC02 /u dom\Administrador /p contraseña

Con este listado detectas, por ejemplo, que el proceso conflictivo es el bloc de notas con un PID concreto.

  1. Una vez localizado el proceso, ejecutas TASKKILL desde SRVDC01, apuntando a SRVDC02:

TASKKILL /PID 4348 /s SRVDC02 /u dom\Administrador /p contraseña

De esta forma, matas el proceso remoto sin tocar físicamente el servidor problemático. Esta técnica se vuelve imprescindible cuando los recursos están tan saturados que apenas responde el escritorio remoto, pero el servicio de control remoto vía comandos sigue activo.

Recuerda, además, que los procesos remotos siempre se terminan forzosamente. No existe cierre “amable” en este contexto, así que cualquier dato sin guardar que dependa de ese proceso se perderá.

Por último, no está de más tener presente que, frente a todo este despliegue de comandos, en un entorno de escritorio sencillo muchas veces basta con abrir el Administrador de tareas y cerrar ahí la aplicación conflictiva. Pero cuando el problema es serio, remoto o requiere automatización, TASKLIST y TASKKILL no tienen sustituto.

Dominar TASKKILL, sus filtros y su uso combinado con TASKLIST, así como conocer la alternativa con Stop-Process en PowerShell, te da un control fino sobre los procesos en Windows tanto en local como en remoto. Tener estas herramientas en tu arsenal marca la diferencia entre limitarte a reiniciar a lo bruto o gestionar el sistema con precisión cuando algo se atasca.