Si trabajas administrando equipos o resolviendo incidencias, tarde o temprano te hará falta una vista clara de los procesos del sistema, y ahí es donde PsList se convierte en un imprescindible. Esta utilidad de la suite PsTools de Sysinternals te enseña, en consola, qué se está ejecutando, cómo consume recursos y cómo se relacionan los procesos entre sí, tanto en el equipo local como en máquinas remotas.
La gracia de PsList no es solo listar, sino permitirte profundizar: puedes ver prioridad, hilos, identificadores, memoria virtual y tiempos de CPU, activar una vista tipo mini Administrador de tareas con refresco continuo, filtrar por nombre o por PID y hasta consultar equipos remotos con credenciales específicas. Y si combinas PsList con PsKill o PsExec, pasas de observar a actuar en segundos.
Qué es PsList y qué información ofrece
PsList es una herramienta de línea de comandos creada por Sysinternals (Microsoft) para enumerar procesos con métricas detalladas. Cada fila en su salida incluye campos como prioridad, número de hilos (threads), identificadores (handles), memoria virtual, conjunto de trabajo (working set), tiempos de CPU y tiempo transcurrido desde que el proceso arrancó.
Un detalle importante es que todos los valores de memoria se muestran en kilobytes (KB), así que si estás comparando con herramientas que reportan en MB conviene ajustar mentalmente las magnitudes o convertirlas para evitar confusiones.
Además del sistema local, PsList permite consultar procesos de un equipo remoto accesible. Cuando tus credenciales actuales no bastan para leer los contadores de rendimiento de esa máquina, puedes indicar un usuario y una contraseña explícitos para obtener la información.
En cuanto a compatibilidad, PsList forma parte de PsTools y se ejecuta en entornos modernos: Windows 8.1 y posteriores en cliente, y Windows Server 2012 y posteriores en servidor. Versiones anteriores de la propia utilidad existieron para Windows NT/2000/XP/2003, pero en escenarios actuales te interesa usar la versión incluida en la suite oficial.
Descarga, instalación y funcionamiento interno
PsList viene dentro de PsTools, un paquete de utilidades de consola para administración local y remota. No requiere instalación: basta con copiar los binarios a una carpeta del PATH o invocarlos por su ruta y ya puedes usarlos, algo ideal para portabilidad y para scripts.
La herramienta basa su salida en los contadores de rendimiento de Windows (los mismos que alimentan PerfMon/Monitor de rendimiento). Esa es la razón por la que los datos que ves con PsList coinciden con lo que encontrarías en PerfMon, y también por lo que, en un equipo remoto, pueden hacer falta credenciales con permisos para leer dichos contadores.
Sintaxis y parámetros que debes dominar
La sintaxis de PsList es simple pero flexible, con modificadores para conseguir desde filtros rápidos hasta vistas muy detalladas. Aquí tienes un resumen de uso con los parámetros clave y su propósito reexplicado en un vistazo:
| Parámetro | Descripción |
|---|---|
pslist exp |
Muestra estadísticas de todos los procesos cuyo nombre empieza por «exp» (por ejemplo, Explorer). |
-d |
Incluye detalles de hilos (threads) del proceso. |
-m |
Enfoca la salida en estadísticas de memoria. |
-x |
Combina en una sola vista procesos + memoria + hilos. |
-t |
Muestra el árbol de procesos (jerarquía padre-hijo). |
-s [n] |
Modo muestreo tipo Administrador de tareas durante n segundos (Escape para salir). |
-r n |
Fija la frecuencia de actualización del modo muestreo en segundos (por defecto, 1). |
\\equipo |
Consulta el equipo remoto indicado en lugar del local (útil en redes Windows). |
-u |
Especifica el usuario para iniciar sesión en la máquina remota (p. ej., DOMINIO\Usuario). |
-p |
Permite indicar la contraseña en la línea de comandos; si omites -p tras poner -u, PsList la pedirá de forma interactiva. |
nombre |
Filtra y muestra procesos cuyo nombre empieza por la cadena indicada. |
-e |
Fuerza la coincidencia exacta del nombre del proceso. |
pid |
Restringe la salida al proceso con ese PID (por ejemplo, pslist 53). |
Con estos modificadores cubres desde filtros por prefijo hasta auditorías puntuales de un PID concreto, pasando por vistas combinadas que te ahorran tener que encadenar varias ejecuciones.
Algunos ejemplos comunes para que lo veas en la práctica, con comandos listos para copiar:
pslist pslist exp pslist -t pslist -x pslist 1234 pslist -t -e explorer.exe
Interpretar la salida: abreviaturas y campos

La salida de PsList utiliza abreviaturas para compactar información y que la tabla sea manejable. Conviene conocer su significado porque te permite detectar cuellos de botella de un vistazo:
- Pri: prioridad del proceso en el planificador.
- Thd: número de hilos (threads) del proceso.
- Hnd: número de identificadores (handles) abiertos.
- VM: memoria virtual asignada.
- WS: working set (memoria física en uso).
- Priv: memoria virtual privada del proceso.
- Priv Pk: pico de memoria virtual privada alcanzado.
- Faults: fallos de página (page faults).
- NonP: tamaño del pool no paginado.
- Page: tamaño del pool paginado.
- Cswtch: cambios de contexto realizados.
Además verás CPU Time (tiempo de CPU consumido) y Elapsed Time (tiempo total en ejecución). Esos dos campos son perfectos para descubrir procesos que se quedan colgados o que consumen más de la cuenta.
Modo muestreo con refresco continuo
Cuando necesitas observar cómo evolucionan los procesos durante un intervalo, usa el modo de muestreo con -s. En ese modo PsList refresca la información automáticamente el tiempo indicado o hasta que pulses Escape, y con -r defines cada cuántos segundos se actualiza.
pslist -s 15 -r 2
El ejemplo anterior mantiene la herramienta activa durante 15 segundos con un refresco cada dos segundos. Es comodísimo para cazar picos de CPU o de memoria que duran poco y que se te escaparían en una única ejecución.
Uso remoto: credenciales, seguridad y prerequisitos
Una de las ventajas de PsList es su capacidad para consultar procesos en máquinas remotas sin instalar agentes adicionales. La sintaxis se basa en anteponer \\ al nombre del equipo o la IP, y, si hace falta, indicar usuario y contraseña.
pslist \\MAQUINA -u DOMINIO\Administrador -p
Si proporcionas usuario pero omites la opción -p, PsList te pedirá la contraseña de forma interactiva, algo muy útil para evitar que la password quede en el historial de la consola. En automatizaciones por lotes, cuando realmente necesites pasársela a la herramienta, valora usar mecanismos seguros de secretos para no exponer credenciales.
Ten en cuenta que el acceso remoto puede requerir permisos específicos para leer contadores de rendimiento del equipo destino. Además, revisa que el cortafuegos y las políticas de la red no bloqueen el tráfico necesario; muchos errores de “Acceso denegado” se deben a configuraciones de red o permisos, no a la herramienta.
Ejemplos prácticos de uso en consola
Para listar todos los procesos cuyo nombre comienza por una cadena concreta, nada como filtrar por prefijo:
pslist svchost
Si conoces el PID y quieres enfocarte en ese proceso para ver sus métricas en detalle, puedes limitar la salida a ese identificador:
pslist 888
Cuando lo que buscas es una vista completa con procesos, memoria e hilos en una sola pasada, activa la vista combinada:
pslist -x
Y para desentrañar la jerarquía padre-hijo de procesos, pide el árbol de procesos:
pslist -t
Combinar PsList con PsKill y PsExec para intervenir

Tras identificar el proceso problemático, puedes ir un paso más allá y accionar con PsKill para terminarlo, e incluso relanzarlo con PsExec si procede. Un flujo típico en un equipo remoto podría ser:
pslist -t \\[EquipoRemoto o IP] pskill -t \\[EquipoRemoto o IP] -u [EQUIPO\UsuarioAdmin] -p [Password] [NombreProceso o PID] psexec \\[EquipoRemoto o IP] -u [EQUIPO\UsuarioAdmin] -p [Password] "C:\\Ruta\\Programa\\app.exe"
La opción -t de PsKill asegura que se finaliza el proceso y su descendencia, muy útil cuando hay subprocesos que se quedan bloqueados. Después, con PsExec, puedes reiniciar el binario afectado para recuperar el servicio o la aplicación sin necesidad de abrir una sesión gráfica.
Volcado de ejemplo en un equipo remoto
Este es un ejemplo clásico de uso remoto de PsList que pide credenciales y devuelve una tabla con los procesos del equipo destino. La primera línea es el comando y, tras introducir la contraseña, verás algo similar a esto:
pslist \\MAQUINA -u MAQUINA\LOGIN Password: Process information for MAQUINA: Name Pid Pri Thd Hnd Priv CPU Time Elapsed Time Idle 0 0 2 0 0 1:15:30.953 0:00:00.000 System 4 8 74 378 0 0:00:10.765 0:00:00.000 smss 580 11 3 21 168 0:00:00.046 0:39:56.890 csrss 8 13 1 630 11 0:00:05.250 0:39:55.640 winlogon 65 13 2 477 677 0:00:01.906 0:39:55.421 services 696 9 15 330 471 0:00:04.000 0:39:54.734
Como ves, la salida incluye prioridad, hilos, identificadores y consumo de CPU, además de los tiempos clave, lo que te da contexto para tomar decisiones con rapidez.
PsList y análisis de memoria forense: el “pslist” de Volatility
En respuesta a incidentes y DFIR, también encontrarás el concepto “pslist” dentro de Volatility, la plataforma para analizar capturas de RAM. Aquí la idea es distinta: no es la utilidad de Sysinternals, sino plugins que listan procesos desde un volcado de memoria.
En Volatility 2, los comandos habituales son pslist, psscan y pstree, además de psxview para contrastar vistas y descubrir procesos ocultos. En Volatility 3 cambia la nomenclatura y se adopta el prefijo windows. en los módulos, y no hay un equivalente directo a psxview.
# Volatility 2 vol.py -f "memdump.raw" --profile <perfil> pslist vol.py -f "memdump.raw" --profile <perfil> psscan vol.py -f "memdump.raw" --profile <perfil> pstree # Volatility 3 vol.py -f "memdump.raw" windows.pslist vol.py -f "memdump.raw" windows.psscan vol.py -f "memdump.raw" windows.pstree
También hay módulos para red, servicios, módulos del kernel, manejadores, DLLs o líneas de comando, de forma que puedes reconstruir lo que estaba ocurriendo en el sistema en el momento de la captura. Algunos equivalentes entre V2 y V3 serían:
# Red V2: vol.py ... netscan V3: vol.py ... windows.netscan # Módulos del kernel V2: vol.py ... modules V3: vol.py ... windows.modules # Servicios V2: vol.py ... svcscan V3: vol.py ... windows.svcscan # Ficheros y manejadores V2: vol.py ... filescan / handles V3: vol.py ... windows.filescan / windows.handles --pid <PID> # DLLs y líneas de comando V2: vol.py ... dlllist / cmdline V3: vol.py ... windows.dlllist --pid <PID> / windows.cmdline # Registro V2: vol.py ... hivescan / hivelist / printkey V3: vol.py ... windows.printkey # Extracción de memoria y archivos V2: vol.py ... memdump -p <PID> -D <dir> / dumpfiles --dump-dir=<dir> V3: vol.py ... windows.memdump -p <PID> -D <dir> / windows.dumpfiles --pid <PID> --virtaddr <off> --physaddr <off>
Recuerda que en V2 existía psxview para detección de ocultación sin equivalente directo en V3. Dentro de un flujo DFIR, manejar bien PsList (en vivo) y los plugins de Volatility (offline) te da una visión complementaria potentísima.
Otras utilidades relacionadas que te facilitan la vida
En el ecosistema Windows hay herramientas que complementan a PsList y que conviene tener a mano cuando quieras profundizar en procesos y recursos:
- tlist.exe: de las Debugging Tools. Muestra árbol de procesos (
-t) y acepta filtros. - pulist.exe: del antiguo kit de recursos. Lista nombre, PID y cuenta de usuario, con soporte remoto.
- handle.exe: enumera manejadores abiertos por procesos y permite cerrar alguno específico.
- listdlls.exe: lista las DLLs cargadas por proceso con ruta y versión.
- pmdump: vuelca la memoria de un proceso por PID para análisis avanzados.
- Process Explorer: interfaz gráfica de Sysinternals con una visión muy profunda del sistema.
Estas utilidades, junto con PsList, forman un kit de diagnóstico muy ágil, ya sea para tareas de administración diaria o para forense en caliente.
Buenas prácticas: permisos, scripting y rendimiento
En escenarios remotos, valida que el cortafuegos y las políticas de seguridad permiten el acceso a los contadores de rendimiento y que la cuenta usada tiene los permisos necesarios. Así evitarás errores de acceso que no se deben a la herramienta en sí.
Cuando automatices con scripts, cuida el manejo de credenciales y parámetros sensibles. Si puedes, usa el prompt interactivo y evita pasar contraseñas en claro. Y si necesitas incorporarlas, apóyate en gestores de secretos o en mecanismos de inyección segura.
La salida de PsList, al ser texto plano, se lleva bien con pipes, redirecciones y filtros. Un par de ideas para el día a día:
pslist -x > informe_pslist.txt pslist -m | findstr /i "chrome firefox"
Si estás trabajando en máquinas muy cargadas, ajusta la frecuencia con -r para que el muestreo no impacte en exceso; un refresco demasiado agresivo puede añadir ruido en sistemas sensibles.
Integración en recopilación de evidencias volátiles
En una adquisición forense, el orden de recogida importa. Antes de volcar RAM, suele interesar obtener evidencias volátiles como procesos, conexiones y tablas presentes en ese instante. PsList encaja muy bien en un script de “snapshot” del sistema.
Un ejemplo típico para capturar procesos y su jerarquía, aceptando el EULA de forma silenciosa y guardando resultados, podría ser algo en esta línea:
pslist.exe /accepteula >> Procesos.txt pslist.exe -t /accepteula >> procesos_arbol.txt
A partir de ahí puedes complementar con herramientas como tasklist, listdlls, handle o netstat para formar un paquete de evidencias consistente, agregando todo en una única ejecución.
Lista rápida de la suite PsTools
Para situar PsList en su contexto, la suite PsTools incluye además utilidades como PsExec (ejecución remota), PsFile (archivos abiertos), PsGetSid (SID de usuarios o equipos), PsInfo (inventario del sistema), PsPing (medición de red), PsKill (terminar procesos), PsLoggedOn (quién inició sesión), PsLogList (eventos), PsPasswd (cambio de contraseñas), PsService (servicios), PsShutdown (apagado/reinicio) y PsSuspend (suspensión de procesos). El paquete descarga un archivo de ayuda HTML con el uso detallado de cada herramienta.
Ninguna de estas utilidades requiere instalación especial, y no necesitas agentes en los equipos remotos. Para ver la ayuda de cualquier comando, añade -? y tendrás la sintaxis completa en pantalla.
Consejos finales y pequeños trucos
En entornos de dominio, recuerda formatear correctamente usuarios y equipos (por ejemplo, \\EQUIPO o DOMINIO\Usuario) al trabajar en remoto con PsList. Es un detalle simple pero evita errores tontos de autenticación.
Si quieres una “foto” completa sin ir comando a comando, la opción -x es tu aliada: en una sola salida ves procesos, memoria e hilos, lo que acelera el diagnóstico inicial. Después, ya puedes ir afinando con -m o -d según lo que te interese observar.
Por último, no subestimes el poder de combinar herramientas: con PsList para encontrar, PsKill para intervenir y PsExec para relanzar, tendrás un circuito de trabajo muy eficiente para mantener el control de procesos en local y remoto sin necesidad de usar interfaces gráficas.
PsList te da justo lo que necesitas para entender qué se ejecuta y cómo, con métricas fiables y una curva de aprendizaje rápida; si lo integras con el resto de PsTools y, en forense, con los plugins de Volatility, obtendrás una visión completa, accionable y portable del estado de tus sistemas en cualquier momento.