Tuve que resolver este problema para hacer soporte remoto en toda mi empresa. Cosas como PsLoggedOn, y herramientas para escanear los registros de seguridad del controlador de dominio resultaron ser demasiado lentas para mis propósitos (obtener el nombre de host para brindar soporte remoto a los usuarios). Esto es lo que se me ocurrió:
- Todos los usuarios tienen una unidad asignada a X: en AD en Perfil - Carpeta de inicio
- Todos tienen el siguiente script asignado en Perfil: script de inicio de sesión
Este script registra en qué computadora iniciaron sesión en su carpeta de inicio. Específicamente, no registra el inicio de sesión en nuestro servidor de terminal, porque no me importan esas entradas.
'===============================================================
' Record the logon in their X: drive UNLESS they are on TERM-SERVER!
'===============================================================
If strComputerName <> "TERM-SRVER" Then
strFile = "X:\login.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(strFile, 8, True)
objTextFile.WriteLine(strIP + " - " + strComputerName + " - " + CStr(Date) + " " + CStr(Time))
objTextFile.Close
' Make it hidden
Set objTextFile = objFSO.GetFile(strFile)
objTextFile.Attributes = 2
End If
Luego uso un poco de VBscript en mi máquina local para encontrar automáticamente su directorio de inicio en AD, abrir el archivo de registro e imprimir las últimas líneas.