功能:
1、每次用户通过终端服务(远程桌面)登录服务器的时候都会在脚本目录下的日志文件中添加记录(日期、时间、终端名、域名、登录用户名、终端IP地址)
2、每条记录一行,可以方便的导入excel等进行进一步的分析
3、配合vbs隐藏运行脚本,可以避免用户登录的时候看到“一闪而过”的dos窗口,运行方式隐蔽
4、对于开启了终端服务的Windows服务器建议,强烈建议设置日志记录,增强安全性~~


::Written by mwm5 http://nkmis02.blog.51cto.com 2009-10-21

@echo off
for /f "tokens=1-4 delims=: " %%i in (' netstat -an ^|find "3389" ') do set ip=%%l
for /f "tokens=1 delims= " %%i in ("%date%") do set mydate=%%i
for /f "tokens=1 delims=." %%i in ("%time%") do set mytime=%%i
::每行记录,字段名依次为:当前日期|当前时间|客户端名称|域名|帐号名|IP地址
echo        %mydate%        %mytime%        %clientname%        %userdomain%        %username%        %ip%        >>terminal.log


将以上脚本添加到用户登录脚本中
每次登录会产生一行记录,分别为登录日期、登录时间、登录客户端名、域名、用户名、客户端IP地址
格式化输出样式如下,便于统计分析(利用excel等工具)

2009-10-21        23:36:49        PC1        Domain        Administrator        192.168.1.202       
2009-10-21        23:43:30        PC2        Domain        Administrator        192.168.1.205       
2009-10-21        23:43:30        PC3        Domain        Administrator        192.168.1.203
2009-10-21        23:43:31        PC1        Domain        Administrator        192.168.1.202
2009-10-21        23:43:31        PC4        Domain        Administrator        192.168.1.202       


直接运行,日志会存放在批处理所在目录,但是如果设置为开机脚本,日志会存放于我写的是在脚本所在文件夹。。
设置为开机脚本之后,实际使用时(非手工直接运行脚本)日志会存放在  C:\WINDOWS\System32\GroupPolicy\User \Scripts\Logon 文件夹下,所以大家用的时候可以根据需要把terminal.log写成需要的绝对路径,以方便使用,并增加安全性,呵呵

另外分享一个让该批处理隐藏运行的简单的vbs脚本

'隐藏运行批处理脚本
set WshShell=CreateObject("Wscript.Shell")
WshShell.run "cmd /c d:\Terminal_Record\Terminal_Record.bat",0


其中 d:\Terminal_Record\Terminal_Record.bat 改为你要运行的批处理的绝对路径