- PsList lista procesos en Windows con detalles de CPU, memoria, hilos y jerarquía, en local o remoto.
- Parámetros clave: -t (árbol), -m (memoria), -x (vista completa), -s/-r (muestreo), filtros por nombre/PID.
- Se integra con PsKill y PsExec para actuar: localizar, terminar y relanzar procesos de forma remota.
Si administras sistemas Windows y quieres una visión rápida y fiable de lo que pasa con los procesos, PsList es de esas utilidades que te sacan de apuros. Forma parte del paquete PsTools de Sysinternals y, con un puñado de comandos, permite inspeccionar de forma detallada CPU, memoria, hilos y jerarquías de procesos, tanto en local como en remoto.
Además de listar procesos, PsList brilla cuando quieres ver el árbol de procesos, refrescar datos en intervalos como si fuera un mini Administrador de tareas en consola, o filtrar por nombre o PID. Y cuando lo combinas con PsKill y PsExec, ya puedes pasar de observar a actuar: localizar un proceso problemático, terminarlo con seguridad y volver a iniciarlo en segundos, también en equipos remotos autorizados.
Qué es PsList y qué puede mostrar
PsList es una utilidad de línea de comandos de Sysinternals diseñada para enumerar procesos y su telemetría clave. Con una orden simple obtienes columnas como prioridad, número de hilos e identificadores, memoria virtual y conjunto de trabajo, además de tiempos de CPU y de ejecución acumulados para cada proceso.
La herramienta puede trabajar contra el sistema local o contra un equipo remoto accesible. En este último caso admite credenciales explícitas si tus permisos actuales no bastan para leer contadores de rendimiento en el otro sistema. Así, con PsList puedes cubrir tanto diagnóstico interactivo como automatización vía scripts.
pslist
pslist exp
pslist -t
pslist \\EQUIPO-REMOTO -u DOMINIO\Usuario -p Contraseña
PsList también cuenta con vistas específicas: puedes pedir detalles de hilos por proceso, enfocarte en consumo de memoria o activar una vista combinada con todo a la vez. Cuando necesitas una foto completa, el interruptor adecuado te ahorra pasos y aclara el panorama.
Instalación, versiones compatibles y cómo funciona por dentro
PsList forma parte de PsTools, un conjunto de utilidades de consola de Sysinternals. No requiere instalación compleja: basta con copiar el ejecutable a una carpeta del PATH o invocarlo por su ruta. El paquete es ligero y ideal para administradores que prefieren herramientas portátiles.
Compatibilidad: en entornos modernos, PsList se ejecuta en Windows 8.1 y posteriores en cliente, y en Windows Server 2012 y posteriores en servidor. Estas versiones garantizan el soporte y APIs necesarias para recabar la información que la herramienta expone.
¿De dónde saca los datos? PsList usa los contadores de rendimiento de Windows (los mismos que alimentan PerfMon). Gracias a ello, la información es consistente con lo que verías en el Monitor de rendimiento del propio sistema. Esta integración también explica por qué, en escenarios remotos, puede ser necesario autenticarte con una cuenta con privilegios adecuados.
Un apunte práctico: todos los valores de memoria que muestra PsList aparecen en kilobytes (KB). Si estás comparando con otras herramientas que informan en MB, tenlo en cuenta para no confundir magnitudes.
Sintaxis y parámetros esenciales
La sintaxis básica es flexible y cubre casos sencillos y avanzados. Estos son los parámetros clave que conviene dominar para sacarle partido:
Parámetro | Qué hace |
---|---|
pslist exp |
Filtra y muestra procesos cuyo nombre empieza por «exp» (por ejemplo, Explorer). |
-d |
Muestra detalles de hilos del proceso. |
-m |
Enfoca la salida en estadísticas de memoria. |
-x |
Vista combinada con procesos, memoria e hilos. |
-t |
Muestra el árbol de procesos (jerarquía). |
-s [n] |
Ejecuta en modo tipo Administrador de tareas durante n segundos (Escape para cancelar). |
-r n |
Fija la frecuencia de actualización en segundos en el modo anterior (por defecto, 1). |
\\equipo |
En lugar del sistema local, obtiene la información del equipo remoto indicado (NT/Win2K+; hoy Windows modernos). |
-u |
Permite especificar un usuario para iniciar sesión en el remoto. |
-p |
Indica la contraseña en la línea de comandos. Si omites -p tras indicar cuenta, PsList te la pedirá de forma interactiva. |
nombre |
Filtra y muestra procesos que empiezan por ese nombre. |
-e |
Fuerza la coincidencia exacta del nombre del proceso. |
pid |
Restringe la salida al proceso con ese PID concreto (p. ej., pslist 53 ). |
Con esta base, puedes cubrir desde filtros rápidos por nombre hasta auditorías específicas de un PID. Y si lo que quieres es una visión global enriquecida, activa -x
y tendrás datos de procesos, memoria e hilos en una sola pasada.
pslist -x
pslist -m chrome
pslist -t -e explorer.exe
pslist 1234
Para escenarios remotos, recuerda que las rutas y usuarios de dominio se escriben con la sintaxis típica de Windows: \\EQUIPO o DOMINIO\Usuario. Ajusta según la topología de tu organización.
Lectura de la salida: abreviaturas y campos
La salida de PsList usa abreviaturas estándar para compactar la información. Estas son las claves que debes conocer para interpretar columnas y métricas:
Columna | Significado |
---|---|
Pri | Prioridad del proceso en el planificador. |
Thd | Número de hilos en el proceso. |
Hnd | Recuento de identificadores (handles) abiertos. |
VM | Memoria virtual asignada. |
WS | Conjunto de trabajo (Working Set) en memoria física. |
Priv | Memoria virtual privada del proceso. |
Priv Pk | Pico de memoria virtual privada alcanzado. |
Faults | Número de fallos de página (page faults). |
NonP | Tamaño del pool no paginado asociado. |
Page | Tamaño del pool paginado. |
Cswtch | Cambios de contexto que ha experimentado. |
Verás también datos de CPU Time y Elapsed Time, útiles para saber cuánto tiempo de CPU ha consumido el proceso y cuánto lleva en ejecución. Estos campos son vitales para cazar procesos que se quedan colgados o que consumen más recursos de la cuenta.
Modo tipo Administrador de tareas y refresco continuo
Si quieres vigilar un proceso o varios durante un periodo sin necesidad de pulsar nada, usa el modo de muestreo de PsList con -s
. Este modo refresca la salida y permanece activo el tiempo que indiques (o hasta que pulses Escape). Con -r
defines cada cuántos segundos se actualiza.
pslist -s 15 -r 2
El ejemplo anterior ejecuta PsList durante 15 segundos con un refresco de dos segundos. Es muy práctico para capturar picos de CPU o memoria que duran poco y que quizá no cazas con una sola ejecución.
Trabajo con equipos remotos: credenciales y seguridad
Una de las bazas de PsList es su capacidad para consultar procesos en máquinas remotas con las que tienes conectividad y permisos. La sintaxis es directa: se antepone el nombre de equipo o IP con \\
y, si hace falta, se indican credenciales.
pslist \\MAQUINA -u DOMINIO\Administrador -p
Si especificas usuario pero omites la opción -p
, PsList te pedirá la contraseña de forma interactiva. Esto es cómodo cuando tecleas a mano, y evita que la password quede en el historial de la consola. Para ejecutar en scripts, conviene pasarla por parámetro o utilizar un mecanismo seguro de inyección de credenciales.
Ten presente que en algunas redes necesitas permisos para leer contadores de rendimiento del equipo remoto. Si tu cuenta no los tiene, la combinación de -u
y -p
con un usuario con privilegios solventa el problema y permite que PsList acceda a los datos.
Ejemplos prácticos
Para encontrar todos los procesos cuyo nombre comienza por una cadena concreta, filtra por prefijo y afina lo que te interesa ver:
pslist svchost
Si te interesa un proceso específico con un PID conocido, limita la salida a ese identificador:
pslist 888
Para una foto completísima (procesos + memoria + hilos) en una sola orden, activa la vista combinada:
pslist -x
Y cuando quieras comprender la relación entre procesos padre e hijo, nada como el árbol para desentrañar la jerarquía y localizar quién lanzó a quién:
pslist -t
Combinar PsList con otras PsTools para actuar (PsKill y PsExec)
Una vez localizado el proceso que se comporta mal, puedes pasar de observar a tomar acción con PsKill. El flujo típico es: listar el árbol en el equipo remoto, anotar nombre o PID, y terminarlo de forma controlada.
pslist -t \\[EquipoRemoto o IP]
pskill -t \\[EquipoRemoto o IP] -u [EQUIPO\UsuarioAdmin] -p [Password] [NombreProceso o PID]
El modificador -t
en PsKill asegura que se finaliza el proceso y su descendencia (útil cuando hay subprocesos que se quedan colgados). Si lo necesitas, con PsExec puedes relanzar el binario para simular un «reinicio» del servicio o aplicación afectada.
psexec \\[EquipoRemoto o IP] -u [EQUIPO\UsuarioAdmin] -p [Password] "C:\\Ruta\\Programa\\app.exe"
Con esta combinación, en entornos empresariales es sencillo hacer pruebas, recuperar servicios sin escritorio remoto, o automatizar tareas de mantenimiento según políticas y ventanas de servicio.
PsList en análisis de memoria (Volatility): una pieza del puzle forense
En el ámbito de respuesta a incidentes, el concepto de «pslist» también aparece en Volatility, la plataforma de análisis de volcados de memoria. Aquí, la idea es diferente: no inspeccionas un Windows en vivo, sino una captura de RAM para reconstruir qué estaba pasando.
En Volatility 2, el listado de procesos se obtiene con vol.py ... pslist
, la búsqueda de procesos ocultos con psscan
y la jerarquía con pstree
. Además, existe psxview para contrastar vistas y detectar ocultaciones. En Volatility 3, los comandos cambian a la notación con prefijo windows (por ejemplo, windows.pslist
, windows.psscan
, windows.pstree
) 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
Los módulos de red, servicios, módulos del kernel y más también tienen sus variantes. En V2 puedes usar netscan
, modules
, svcscan
, filescan
, handles
, dlllist
, cmdline
, hivescan
y hivelist
. En V3, sus contrapartes adoptan la forma windows.netscan, windows.modules, windows.svcscan, windows.filescan, windows.handles, windows.dlllist, windows.cmdline, windows.printkey, etc.
# Ejemplos de Volatility 3
vol.py -f "memdump.raw" windows.netscan
vol.py -f "memdump.raw" windows.modules
vol.py -f "memdump.raw" windows.svcscan
vol.py -f "memdump.raw" windows.filescan
vol.py -f "memdump.raw" windows.handles --pid <PID>
vol.py -f "memdump.raw" windows.dlllist --pid <PID>
vol.py -f "memdump.raw" windows.cmdline
Para extracción, en V2 usas memdump
o dumpfiles
con directorios de salida, y en V3 el plugin windows.dumpfiles
permite volcar por PID, dirección virtual o física. Estos flujos integran el análisis de procesos con artefactos de red, registro y módulos, conformando una vista forense completa.
En definitiva, aunque «pslist» en Volatility no es la misma utilidad que PsList de Sysinternals, comparten el objetivo de reconstruir la actividad de procesos. Si trabajas en DFIR, conviene dominar ambos mundos: el análisis en vivo con PsTools y el análisis offline con Volatility 2/3 y sus nuevos nombres de plugins.
Herramientas relacionadas para completar la visión
Además de PsList, en ecosistemas Windows existen utilidades que suman perspectiva. Tenerlas a mano te da agilidad en distintas fases del diagnóstico.
- tlist.exe: de las MS Debugging Tools. Muestra árbol de procesos (
-t
) y acepta filtros por PID o expresiones para el nombre. - pulist.exe: del kit de Windows 2000. Muy simple; lista nombre, PID y cuenta de usuario, y puede consultar equipos remotos.
- cmdline: revela argumentos y flags con los que se lanzó un proceso, además de ruta de imagen.
- handle: enumera handles abiertos por procesos, con opciones para cerrar alguno específico.
- listdlls: lista DLLs cargadas por procesos, con ruta y versionado.
- pmdump: vuelca la memoria de un proceso por PID, útil para análisis avanzado.
- Process Explorer: interfaz gráfica potentísima que reúne gran parte de estas funciones, ideal cuando no necesitas scripting.
Buenas prácticas y notas operativas
Para entornos remotos, asegúrate de que el cortafuegos y las políticas permiten acceso a los contadores de rendimiento y al servicio necesario. Evitarás errores de acceso denegado que no se deben a PsList sino a configuración de la red.
Cuando automatices con scripts, valora cómo proteger credenciales. Pasar contraseñas en claro en la línea de comandos puede exponerlas en el historial; opciones como el prompt interactivo o cofres de secretos son preferibles en producción.
La salida de PsList, al ser texto plano, se integra bien con pipes y redirecciones. Puedes enviarla a un fichero, filtrarla con findstr
o convertirla a CSV con un pequeño postprocesado.
pslist -x > informe_pslist.txt
pslist -m | findstr /i "chrome firefox"
Y cuando trabajes con equipos muy cargados, evita intervalos de refresco demasiado agresivos con -r
. Un muestreo responsable minimiza el impacto de observación en sistemas sensibles.
Dónde conseguir PsList y comunidad
PsList viene en el paquete PsTools de Sysinternals, accesible desde los sitios oficiales de Microsoft. Es una suite que se actualiza con cierta regularidad y que añade herramientas como PsExec, PsKill, PsService, PsLoggedOn y otras muchas pensadas para administración local y remota.
Si buscas resolver dudas puntuales o compartir experiencias, la comunidad de Sysinternals y foros temáticos de Windows ofrecen respuestas prácticas. Revisar la documentación oficial de contadores de rendimiento también ayuda a entender cómo se calculan ciertas métricas y por qué pueden diferir de lo que ves en otras utilidades.
Con PsList tienes una forma ágil de conocer al detalle qué procesos se ejecutan, cómo consumen recursos y cómo se relacionan entre sí, tanto en local como en remoto. Si a eso le sumas PsKill y PsExec, completas el ciclo: identificar, intervenir y volver a poner en marcha un servicio, conservando el control y sin depender de sesiones gráficas o accesos interactivos complejos.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.