使用dumpel定期导出windows系统日志
?
?
1、windows系统日志的存储:
windows的系统日志存储在C:\WINDOWS\system32\config目录,文件后缀为evt。
2、导出工具:
使用dumpel.exe可以导出windows的系统日志。
dumpel.exe可以去微软官网下载,地址:http://support.microsoft.com/kb/927229。
下载后的dumpel.exe是个安装文件,安装完后可以在安装目录找到一个dumpel.exe,我们需要的是安装后的dumpel.exe。
3、导出脚本:
直接使用dumpel.exe不容易实现自动定期导出系统日志。所以需要编写个脚本。脚本内容:
?
//获得YYYYMMDD格式的当前时间function getCurYYYYMMDD(){var today = new Date();var year = today.getYear();var month = today.getMonth() + 1;if (month < 10) {month = "0" + month;}var date = today.getDay();if (date < 10){date = "0" + date;}return year + "" + month + "" + date;}//补齐目录结尾的'\'function makeDir(str){if (str.charAt(str.length - 1) != '\\'){return str + "\\";}else{return str;}}//处理命令行参数var args = WScript.Arguments;var days = 1;var path = "";var exepath = "";for (i = 0; i < args.length; i++){var a = args(i);if (a.indexOf("-e") == 0){exepath = a.substring(2, a.length);}if (a.indexOf("-p") == 0){path = a.substring(2, a.length);}if (a.indexOf("-d") == 0){days = a.substring(2, a.length);}}//补齐目录结尾的'\'exepath = makeDir(exepath);path = makeDir(path);//获取当前时间var YYYYMMDD = getCurYYYYMMDD();var YYYYMM = YYYYMMDD.substring(0, 6);//判断按月存放的目录是否存在var fso = new ActiveXObject("Scripting.FileSystemObject");if (fso.FolderExists(path + YYYYMM) != true){fso.CreateFolder(path + YYYYMM);}//执行程序,导出日志var ws = new ActiveXObject("WScript.shell");ws.run(exepath + "dumpel.exe /l" + " application" + " /f " + path + YYYYMM + "\\" + YYYYMMDD + "_app.xls /d " + days, 0, true);ws.run(exepath + "dumpel.exe /l" + " security" + " /f " + path + YYYYMM + "\\" + YYYYMMDD + "_sec.xls /d " + days, 0, true);ws.run(exepath + "dumpel.exe /l" + " system" + " /f " + path + YYYYMM + "\\" + YYYYMMDD + "_sys.xls /d " + days, 0, true);?
?
4、执行命令:
cscript bak_win_log.js -eD:\Desktop -pD:\winlog -d7
使用windows的任务计划执行该命令就实现了定期导出。
*dumpel的安装目录里的dumpel_d.htm是使用说明。
?