我一直试图找出解决以下问题的方法:
我一直在构建一个VBScript来使用提取一系列安全审核事件
windows LogParser
2.2工具。
该脚本的目标是解析已收集的审核日志并“保存关闭”
每周审计文件夹结构中的evt(x)
个文件。想象一下
您正在处理具有WMI服务的整个Windows系统网络
已经运行,每周收集这些日志进行审核。就这样,文件夹
结构从一周到一周保持一致(例如/../audits/date/windows/XXX.evt
)。
这些每周审核文件的摘要文件是基于文本的,这是不利的 每周审计数百台机器。
我已经找到了基本语法,以便我可以拉出事件并将它们输出到html 任何问题。我的奋斗伴随着我需要的额外功能。
该脚本需要以下功能:
启动时,需要提示用户输入所需的文件路径
从(例如../2013-07-03/windows/*
)
然后用户的响应需要绑定一个值,并用于替换一个 变量我在整个脚本中指定。期望的结果是 脚本在用户标识的位置开始脚本中的查询事件。
我尝试使用带有正则表达式对象的输入框,我无法让脚本通过并替换变量(filePathReplace
),以便脚本将运行查询事件我指定了。
我不在乎是否使用输入框。最重要的是,我只需要一种方法来为脚本提供文件路径,并在整个脚本中应用它,以便logparser启动该特定文件夹中的指令。
我所拥有的内容摘录如下。非常感谢任何和所有的帮助。谢谢大家的时间。
CODE EXCERPT (这是脚本的核心组件和其中一个审核事件)
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
答案 0 :(得分:0)
Shell.BrowseForFolder
方法可以说是解决问题的最佳方法。例如:
Set os = CreateObject("shell.application")
basedir = os.Namespace("C:\some\folder").Self.Path
Set fldr = os.BrowseForFolder(0, "Select Folder:", &h10&, basedir)
If Not fldr Is Nothing Then
'do stuff
End If
使用返回的对象:
strQuery = "SELECT ..." & _
...
"FROM '" & fldr.Self.Path & "' " & _
"WHERE EventID = 517"