Ver actividad de usuarios con PsLoggedOn en Windows: guía práctica

Última actualización: 19/09/2025
Autor: Isaac
  • PsLoggedOn combina Registro (HKEY_USERS) y NetSessionEnum para listar sesiones locales y por recursos.
  • Las conexiones IPC$ con cuentas de equipo suelen ser legítimas; audita 4624 y revisa sesiones SMB.
  • Refuerza con quser, Get-CimInstance, Visor de eventos, PsLogList, PsFile y módulos de PowerShell.
  • Aplica seguridad: MFA, mínimo privilegio, VPN y monitorización de intentos de inicio.

Ver actividad de usuarios con PsLoggedOn

En entornos Windows, controlar quién está dentro de tus equipos es vital para mantener a raya incidentes y para auditar accesos. PsLoggedOn, de la suite Sysinternals, es la pieza clave para ver sesiones locales y conexiones a través de recursos compartidos, tanto en tu máquina como en equipos remotos.

Más allá de PsLoggedOn, existen comandos nativos y utilidades que ayudan a corroborar la información, activar auditorías y detectar inicios de sesión sospechosos. En esta guía repasamos cómo funciona PsLoggedOn, su sintaxis, casos reales (como las sesiones en IPC$ con cuentas de equipo), métodos alternativos y buenas prácticas para reforzar la seguridad del acceso remoto.

Qué es PsLoggedOn y cómo detecta usuarios conectados

PsLoggedOn es un applet de PsTools que te muestra quién ha iniciado sesión localmente y quién se ha conectado a través de recursos en un equipo local o remoto. Su lógica combina dos fuentes: el Registro para sesiones locales y la API NetSessionEnum para sesiones por recursos compartidos.

Para sesiones locales, PsLoggedOn considera como usuario conectado a quien tiene cargado su perfil en el Registro (consulta la anatomía del Registro de Windows). Examina HKEY_USERS buscando SIDs de usuario y resuelve cada SID a su nombre de cuenta para presentarlo de forma legible.

Para sesiones remotas a través de recursos (por ejemplo, IPC$, C$ o ADMIN$), recurre a la API NetSessionEnum y enumera las conexiones activas. Esto explica por qué, al consultar un equipo remoto, tú mismo puedes aparecer como conectado mediante un recurso compartido: se establece una sesión para poder acceder al Registro del sistema remoto.

Además, PsLoggedOn acepta como argumento un nombre de usuario. En ese caso, recorre los equipos del vecindario de red y te indica si el usuario figura como conectado en alguno de ellos. Es muy útil antes de tocar perfiles o políticas de usuario.

Cómo funciona PsLoggedOn

Instalación, versiones y requisitos

La instalación no tiene misterio: basta con copiar PsLoggedOn en una ruta del PATH y ejecutarlo. Coloca psloggedon.exe (y psloggedon64.exe si procede) en una carpeta del sistema o utilízalo desde la carpeta de PsTools.

PsLoggedOn forma parte de PsTools, el paquete de Sysinternals que también incluye utilidades como PsInfo, PsFile, PsLogList, Process Explorer o Process Monitor. Puedes descargar PsTools (aprox. 2,7 MB) desde el sitio oficial de Sysinternals y, si prefieres, instalar la suite completa con winget mediante el comando «winget install sysinternals –accept-package-agreements».

Compatibilidad: PsLoggedOn se ejecuta en Windows Vista y superior en cliente, y Windows Server 2008 y superior en servidor. La versión documentada por las fuentes es PsLoggedOn v1.35 con última actualización en 2016, lo que no impide que siga siendo útil para tareas de soporte y auditoría.

  La cámara no puede establecer la conexión

Uso y sintaxis de PsLoggedOn

La llamada básica admite un conjunto muy corto de conmutadores. Es una herramienta sencilla, rápida y directa:

psloggedon    

Parámetros principales: -l muestra solo sesiones locales, -x oculta las horas de inicio de sesión y «-» imprime la ayuda con opciones y unidades de medida. Puedes pasar un equipo remoto con su nombre UNC (\\equipo) o un nombre de usuario para buscarlo por la red.

Ejemplos típicos en consola o PowerShell: listar sesiones locales y por recursos de tu PC, consultar un remoto o buscar a un usuario concreto.

psloggedon
psloggedon \\EQUIPO-REMOTO
psloggedon usuario.dominio

Ten presente que, cuando preguntas a un equipo remoto, tu cuenta puede salir listada como conectada a través de un recurso compartido debido al acceso requerido para leer su Registro. Si el objetivo es aislar únicamente las sesiones locales, usa el modificador -l.

Interpretar resultados: conexiones a IPC$ y cuentas de equipo con signo $

Un caso común es recibir alertas de sesiones establecidas por cuentas de equipo (terminan en «$») sobre el recurso IPC$. Esto suele inquietar, pero a menudo obedece a actividad legítima del propio entorno Windows y de servicios que dialogan mediante canalizaciones con nombre.

IPC$ es un recurso especial creado por el servicio Server. Permite abrir canalizaciones con nombre, que utilizan componentes del sistema y aplicaciones/servicios instalados. Mediante esta conexión, incluso usuarios anónimos pueden realizar ciertas operaciones limitadas, como enumerar recursos compartidos, según la configuración. Por eso, ver sesiones en IPC$ no implica por sí mismo algo malicioso.

En un equipo Windows 10 Pro, es perfectamente normal que exista el recurso IPC$. El servicio de servidor expone IPC$ para facilitar las canalizaciones con nombre y otras operaciones del sistema. Si PsLoggedOn te muestra entradas del tipo «DOMINIO\EQUIPO-A$» en «Usuarios conectados a través de recursos compartidos», suele ser porque ese equipo ha abierto una sesión SMB hacia el tuyo (por ejemplo, por administración remota).

¿Cómo indagar el origen? Estas comprobaciones ayudan a distinguir legítimo de sospechoso, con herramientas nativas y lo que te ofrece PsLoggedOn. El objetivo es mapear la conexión a procesos, tareas o componentes del sistema:

  • Comprobar sesiones SMB: en el equipo afectado, abre «Administración de equipos» > «Carpetas compartidas» > «Sesiones» y «Archivos abiertos» para ver quién está conectado y qué uso hace.
  • Comando net session: ejecuta «net session» para listar conexiones actuales por recurso compartido, equipo y usuario.
  • Visor de eventos: busca eventos 4624 (inicio de sesión correcto) en «Registros de Windows > Seguridad» y revisa el tipo de inicio de sesión (p. ej., tipo 3 para red). El evento detalla cuenta, estación de trabajo y dirección.
  • Política de auditoría: activa la auditoría de inicio de sesión en «gpedit.msc» > «Configuración del equipo» > «Configuración de Windows» > «Configuración de seguridad» > «Directivas locales» > «Directiva de auditoría» > «Auditar eventos de inicio de sesión», marcando Éxito y Error.
  • Tareas y servicios: revisa el Programador de tareas, servicios de gestión remota, herramientas de inventario y antivirus/EDR que puedan abrir sesiones para consultas o despliegues.
  Cómo solucionar problemas de descarga en pausa

Si el patrón es estable (las mismas máquinas con «$» se conectan siempre en horario laboral) y corresponde a administración o supervisión, es probable que sea normal. Si detectas conexiones inusuales, fuera de horario o desde equipos no reconocidos, entonces sí conviene profundizar con los registros y limitar accesos.

Sesiones en IPC$ y cuentas de equipo

Métodos alternativos para ver quién ha iniciado sesión

Complementar PsLoggedOn con herramientas nativas te ofrece una visión más completa. Combinar varias fuentes reduce falsos positivos y te da contexto sobre la sesión.

Consola/PowerShell (quser/query user). Ejecuta «quser /server:EquipoRemoto» o «query user /server:EquipoRemoto» para listar sesiones de Escritorio Remoto/Terminal. Es rápido y útil en servidores con RDS y también sirve para equipos que aceptan RDP.

quser /server:Equipo1
query user /server:Equipo2

PowerShell (Get-CimInstance). Un enfoque simple para comprobar la sesión interactiva local: «Get-CimInstance -ClassName Win32_ComputerSystem -ComputerName Equipo | Select -ExpandProperty username». Ten en cuenta que, si alguien se conecta por RDP en ciertas configuraciones, puede que no devuelva valor.

Get-CimInstance -ClassName Win32_ComputerSystem -ComputerName EQUIPO | Select -ExpandProperty username

Sysinternals PsLoggedOn desde tu consola. Si tienes la suite, basta con invocar «PsLoggedOn \\EquipoRemoto» y obtendrás tanto sesiones locales como conexiones vía recursos. Es la forma más directa de cruzar sesiones de Registro y de compartidos SMB.

PsLoggedOn \\EQUIPO-REMOTO

NBTSTAT. «nbtstat -a Equipo» o «nbtstat -A DirecciónIP» te muestra la tabla de nombres NetBIOS. Es un método heredado que puede ofrecer pistas, pero no es fiable para usuarios activos si no han accedido a recursos compartidos.

nbtstat -a EQUIPO
nbtstat -A 192.0.2.25

Visor de eventos. Ve a «Registros de Windows > Seguridad» y filtra por ID 4624 (inicios correctos). Los detalles del evento te dan nombre de usuario, dominio y estación de trabajo. Requiere derechos de administrador y tener activada la auditoría.

Administrador de tareas. En la pestaña «Usuarios» puedes ver sesiones activas en la máquina local, incluidas las remotas. No siempre diferencia con claridad el tipo de acceso, pero ayuda para comprobaciones rápidas.

Administrador de Servicios de Escritorio Remoto (Windows Server). Desde la MMC, agrega el complemento de RDS para ver pestañas de «Usuarios» y «Sesiones» con detalle (ID de sesión, estado, etc.). Es la consola de referencia en hosts RDSH.

Scripts y utilidades relacionadas para auditoría

Cuando necesitas informes a escala (OU, dominio o inventario de equipos), apoyarte en scripts acelera mucho el trabajo. Hay módulos de PowerShell y herramientas Sysinternals pensadas para esto.

PowerShell Get-UserLogon. Puedes cargar un módulo con funciones para recopilar logons por equipo, OU o en todo el dominio. Guárdalo como psm1 en ‘C:\Program Files\WindowsPowerShell\Modules\Get-UserLogon’, impórtalo y úsalo con switches muy sencillos.

# Todo el dominio
Get-UserLogon -All

# Por OU
Get-UserLogon -OU 'ou=Computers,dc=midominio,dc=local'

# Un equipo concreto
Get-UserLogon -Computer EQUIPO-AD01

PsLogList (Sysinternals). Si buscas correlacionar eventos de seguridad, psloglist te vuelca registros de eventos locales o remotos, incluso autenticándote con otras credenciales. Es un clon avanzado de elogdump y puede sacar mensajes desde la máquina origen del log.

# Últimas 100 entradas del registro de Seguridad en un equipo remoto
psloglist \\EQUIPO -n 100 -l security

# Filtrar por origen o ID de evento
psloglist -o "Microsoft-Windows-Security-Auditing" -i 4624

# CSV-friendly (una entrada por línea)
psloglist -s -t ';' -l security

Sus parámetros permiten acotar por fechas (-a, -b), ventanas de tiempo (-h, -m, -d), número de entradas (-n), IDs a incluir o excluir (-i, -e), orígenes (-o, -q) y hasta esperar nuevos eventos en tiempo real con -w en el sistema local. La versión referenciada por las fuentes es la v2.81 (actualizada en 2019).

  Disable Apps Utilizing Battery Notification on Android Cellphone

PsFile (Sysinternals). Útil para saber qué archivos de un equipo remoto están abiertos por usuarios de la red, su tipo de acceso e incluso cerrarlos indicando el ID si necesitas liberarlos. Requiere especificar credenciales cuando no tienes permisos suficientes.

Otras utilidades de la suite que complementan diagnósticos: PsInfo para inventario, Process Explorer y Process Monitor para inspeccionar procesos y DLL, LogonSessions para enumerar sesiones activas, y RAMMap para radiografiar la memoria. El ecosistema Sysinternals cubre desde detección de sesiones hasta análisis profundo del sistema.

Refuerza la seguridad del acceso remoto

Monitorizar quién entra está bien; reducir la superficie de ataque es aún mejor. Estas medidas elevan el listón y evitan sustos:

  • Contraseñas robustas y rotaciones periódicas para todas las cuentas con acceso remoto.
  • Autenticación multifactor (MFA) para cortar accesos no autorizados incluso con credenciales robadas.
  • Principio de mínimo privilegio: solo permisos imprescindibles, evitando membresías amplias.
  • VPN para encapsular y cifrar el tráfico remoto en redes públicas o mixtas.
  • Supervisión de inicios con alertas de actividad anómala (orígenes inesperados, horarios extraños).

Con PsLoggedOn puedes ver de un vistazo sesiones locales y conexiones por recursos, y apoyarte en comandos como quser, NBTSTAT y el Visor de eventos para completar el cuadro. Si interpretas correctamente entradas en IPC$ y cuentas con «$», activas la auditoría y te apoyas en PsLogList, PsFile y módulos de PowerShell, tendrás control sobre quién se conecta, desde dónde y por qué, además de una base sólida para responder ante cualquier actividad sospechosa.

regedit partes
Artículo relacionado:
El registro de Windows: anatomía, keys, hives, values, …