Con Visual basic y esto k te pongo.....será suficiente
Crear un registro de conexiones a terminal server con VBS. Creamos un fichero de texto llamado registro.vbs con el siguiente contenido.
Por último, creamos una entrada en la ejecución de sesiones de usuario
llamando a esta aplicación.
Con esto conseguiremos que toda entrada al sistema se quede registrada en dicho fichero.
Para que este sistema sea un poco más seguro puede proteger la carpeta, ocultarla y/o
cambiarla de c:\ts\entradas.log
a una carpeta un poco más oculta en el estructura de directorios del servidor.
' Script en VBScript parar guardar los accesosa al terminal server
' Preformateo del fichero de texto con dobles comillas y separados por comas
Const ForAppending = 8
Set oShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
'****************************************************************************
'Comprobamos si existe el fichero de log
If Not objFSO.FileExists("C:\ts\entradas.log") Then
'El fichero no existe y lo creamos con la cabecera de datos
Set objArchivo = objFSO.CreateTextFile("c:\acceso.log", true)
objArchivo.Write chr(34) & "Fecha" & chr(34) & ","
objArchivo.Write chr(34) & "Hora" & chr(34) & ","
objArchivo.Write chr(34) & "Equipo" & chr(34) & ","
objArchivo.Write chr(34) & "Usuario" & chr(34) & ","
objArchivo.Write chr(34) & "Tipo_Conexion" & chr(34) & ","
objArchivo.Writeline
objArchivo.close
End If
'****************************************************************************
'Para obtener la fecha del sistema
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_UTCTime")
For Each objItem in colItems
Dia = objItem.Day
Mes = objItem.Month
Anno = objItem.Year
Hora = objItem.Hour
Minu = objItem.Minute
Next
strFecha = Anno & "/" & Mes & "/" & Dia
strReloj = Hora & ":" & Minu
'****************************************************************************
'Leemos los datos del cliente TS
strSesion = oShell.ExpandEnvironmentStrings("%SESSIONNAME%")
strUsuario = oShell.ExpandEnvironmentStrings("%USERNAME%")
strMaquina = oShell.ExpandEnvironmentStrings("%CLIENTNAME%")
'Comprobamos el tipo de conexion
If strSesion = "" Or LCase(strSesion) = "console" Then
strSesion = "Acceso por consola"
End If
If Left(strSesion,8) = "RDP-Tcp#" Then
strSesion = "Acceso por TS"
End If
'Agregamos los datos al fichero
Set objArchivo = objFSO.OpenTextFile("c:\ts\entradas.log", ForAppending, False)
objArchivo.Write chr(34) & strFecha & chr(34) & ","
objArchivo.Write chr(34) & strReloj & chr(34) & ","
objArchivo.Write chr(34) & strMaquina & chr(34) & ","
objArchivo.Write chr(34) & strUsuario & chr(34) & ","
objArchivo.Write chr(34) & strSesion & chr(34)
objArchivo.Writeline
objArchivo.close
' Fin del Script
Nota: Pasos para añadir este Script al inicio de sesión de los usuarios.
Para usarse desde una GPO, deberemos hacerlo en una GPO
que afecte a las cuentas de usuario de las que queremos registrar
sus inicios y cierres de sesión. Editando la GPO,
en el panel del árbol, nos situamos en el nodo Configuración
de usuarioConfiguración de WindowsSecuencia de comandos(inicio de
sesión/cierre de sesión); veremos en el panel de detalle las directivas
Iniciar sesión y Cerrar sesión.
Hacemos doble click en Iniciar sesión, pulsamos el botón Agregar…,
en la caja de texto Nombre del archivo de comandos ponemos
la ruta y nombre del script VBScript