Написать текстовый файл для каждого журнала событий Windows - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь написать текстовый файл для каждого события с идентификатором 4663, поэтому из журнала событий я запланировал задачу, которая запускает пакетный файл с аргументом 4663. Это мой .bat:

@echo off
IF /I "%1" EQU "4659" set ACTION=Lan Delete
IF /I "%1" EQU "4660" set ACTION=Local Delete
IF /I "%1" EQU "4663" set ACTION=Evento Object
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%" & set "Mil=%dt:~15,3%"
set TIMESTAMP=%YYYY%%MM%%DD%%HH%%Min%%Sec%%Mil%
set HOLDER="C:\log\Evt%1_%TIMESTAMP%.txt"
set LOGFILE="C:\log\logEvents.txt"
type nul > %HOLDER%
wevtutil qe security /rd:true /q:"*[System/EventID=%1]" /f:text /c:1 > %HOLDER%
for /f "tokens=3" %%a in ('type %HOLDER% ^| find /i "Account Name"') do set accname=%%a
for /f "tokens=3" %%a in ('type %HOLDER% ^| find /i "Event ID"') do set eventid=%%a
for /f "tokens=2" %%a in ('type %HOLDER% ^| find /i "Date"') do set dt=%%a
set HEADER=%eventid%: %accname% / %ACTION% @ TS: %dt%
echo %HEADER%
echo %HEADER% >> %LOGFILE%

Этот скрипт правильно генерирует общий файл журнала и файл для каждого события, используя отметку времени, чтобы убедиться, что вы не пропустите ни одного события.

Например, при копировании файла он генерирует два события 4663один для «WriteData» и один для «AppendData».

К сожалению, результат запроса одинаков для двух файлов, он всегда принимает первое найденное событие 4663.

Еще хуже, если я попытаюсь скопировать 3 файла, я найду 6 событий 4663, но все они указывают на данные первого файла.

Если вместо этого я копирую файл по крайней мере, двойное относится к одному файлу.

Единственная уверенность, которую я имею, заключается в том, что для каждого события 4663 я создаю текстовый файл, чтобы запланированный пакет выполнялся вовремя.

Я думаю, что это проблема запроса, потому что, если я пытаюсьзапустить егоиз cmd он дает мне только тот результат, который соответствует первому событию 4663 журнала событий.Я не знаю, смогу ли я в ходе планирования события передать идентификатор id события в качестве аргумента моей задачи .bat.

В целях безопасности я должен восстановить событие, как только оно будет зарегистрировано.потому что это может каким-то образом саботировать ПК или даже удалять журнал событий безопасности, прежде чем я смогу его проверить.

Есть идеи?

...