我一直在试图找出解决以下问题的方法:
LogParser
我一直在构建一个 VBScript 来使用 windows 2.2 工具提取一系列安全审计事件。该脚本的目标是从
evt(x)
每周审核文件夹结构中已收集和“保存”的文件中解析审核日志。想象一下,您正在处理整个 Windows 系统网络,这些系统已经运行了 WMI 服务,每周收集这些日志以供审查。因此,文件夹结构每周都保持一致(例如/../audits/date/windows/XXX.evt
)。这些每周审计文件的摘要文件是基于文本的,不利于每周审计数百台机器。
我已经确定了基本语法,以便我可以拉事件并将它们输出到 html 有任何问题。我的挣扎伴随着我需要它具有的附加功能。
该脚本需要以下功能:
在启动时,它需要提示用户输入他们要从中解析审计数据的文件路径(例如
../2013-07-03/windows/*
)然后用户的响应需要绑定到一个值,并用于替换我在整个脚本中指定的变量。期望的结果是脚本在用户标识的位置启动脚本中的查询事件。
我尝试使用带有正则表达式对象的输入框,但我无法让脚本通过并替换变量 (
filePathReplace
),以便脚本将在我指定的位置运行查询事件。
我不在乎是否使用输入框。最重要的是,我只需要一种方法来为脚本提供文件路径,并将其应用于整个脚本,以便 logparser 在该特定文件夹中启动我的指令。
下面是我所拥有的摘录。非常感谢任何和所有帮助。谢谢大家的时间。
代码摘录 (这是脚本的核心组件和审计事件之一)
Dim oLogQuery
Dim oEVTInputFormat
Dim oTPLOutputFormat
Dim strQuery
Set oLogQuery = CreateObject("MSUtil.LogQuery")
' Create Input Format object
Set oEVTInputFormat = CreateObject("MSUtil.LogQuery.EventLogInputFormat")
oEVTInputFormat.direction = "BW"
' Create Output Format object
Set oTPLOutputFormat = CreateObject("MSUtil.LogQuery.TemplateOutputFormat")
' Create query text (the variable substitution should occur where I state
' filePathReplace. To make the script run without this function, subsitiute
' that variable for 'Security'
' Audit log clearing - 517
oTPLOutputFormat.tpl = "C:\Program Files\Log Parser 2.2\EventFilters\EventLogs-TPL-517.tpl"
strQuery = "SELECT TimeGenerated, EventID, " & _
"EXTRACT_TOKEN (Strings,3,'|') AS clientUserName, " & _
"EXTRACT_TOKEN (Strings,4,'|') AS hostName, " & _
"EXTRACT_TOKEN (Message,0,'Primary User Name') AS Message " & _
"INTO 'C:\Program Files\Log Parser 2.2\EventFilters\AuditLogCleared-517.htm' " & _
"FROM 'filePathReplace' " & _
"WHERE EventID = 517"
oLogQuery.ExecuteBatch strQuery, oEVTInputFormat, oTPLOutputFormat