日期:2014-05-17  浏览次数:21558 次

使用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是使用说明。

?