Пытался найти решение следующей проблемы:
Я создавал VBScript для получения серии событий аудита безопасности с помощью инструмента Windows
LogParser
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