¿Hay alguna manera de determinar la dirección IP de un cliente de escritorio remoto utilizando PowerShell (o algún otro método) en el servidor? (Windows Server 2008 R2 x64 es lo que estoy usando)
EDITAR: encuentro que puedo grep stdout de netstat para recuperar esta información que es muy factible, entonces, ¿cómo puedo activar un script / shell-command cuando un cliente se conecta?
Respuestas:
Desde un símbolo del sistema, puede ejecutar el siguiente comando para obtener una lista de las IP remotas que están conectadas a RDP (puerto 3389).
Estoy seguro de que esto puede ser programado en PowerShell (o incluso un simple archivo por lotes antiguo). Puedo darte un ejemplo mañana si estás interesado.
fuente
Bien, descubrí que la
task scheduler
aplicación que viene con Windows es configurable para que pueda ejecutar un script por lotes, que se activa cuando se genera un evento en el registro de eventos. A través de la interfaz de usuario, elige el tipo de evento, el origen del evento y la ID del evento, en cuyo caso utilicé 4264 (y sí, captura todos los tipos de inicio de sesión). Aquí utilicé un script por lotes simple en su lugar:También encontré este ejemplo súper útil sobre cómo suscribirse / escuchar las escrituras de eventos en .NET: http://msdn.microsoft.com/en-us/library/bb552514(v=vs.90).aspx I ' Voy a terminar usando eso para escribir ciertos eventos en una base de datos para un examen basado en la web.
El único inconveniente de esta solución es que si tiene habilitados los Servicios de escritorio remoto y hay varias personas conectadas, no puede diferenciarlas en la salida de netstat.
fuente
Si no necesita hacer un script, puede buscar en el registro de eventos de seguridad el ID de evento 4624. Habrá una línea:
Dirección de red de origen: 192.168.xxx.xxx
fuente