У меня есть пакетный файл для сохранения журналов событий на нашем общем диске. Я хочу сделать это для XP и Server 2003 без особых усилий. Что я могу использовать, так как Wevtutil работает только на Vista и выше?

rem Script start here
rem Timestamp Generator

set BACKUP_PATH=\\shared-drive\it\Temp\Event-Logs\

rem Parse the date (e.g., Thu 02/28/2013)
set cur_yyyy=%date:~10,4%
set cur_mm=%date:~4,2%
set cur_dd=%date:~7,2%

rem Parse the time (e.g., 11:20:56.39)
set cur_hh=%time:~0,2%
if %cur_hh% lss 10 (set cur_hh=0%time:~1,1%)
set cur_nn=%time:~3,2%
set cur_ss=%time:~6,2%
set cur_ms=%time:~9,2%

rem Set the timestamp format
set timestamp=%cur_yyyy%%cur_mm%%cur_dd%-%cur_hh%%cur_nn%%cur_ss%%cur_ms%

rem Set the computername format
set servname=%computername%

wevtutil epl System %BACKUP_PATH%\%servname%_%timestamp%_system.evtx
wevtutil epl Application %BACKUP_PATH%\%servname%_%timestamp%_application.evtx
wevtutil epl Security %BACKUP_PATH%\%servname%_%timestamp%_security.evtx

rem End of Script

2 ответа2

0

Я не верю, что то, о чем вы просите, может быть сделано напрямую. Самое близкое, что я смог получить, - это использовать wmic для создания дампов записей. Этот метод оказался ненадежным для меня в Windows 7, но, похоже, он работал под Windows XP.

Пример фрагмента:

    Rem The first time that WMIC runs, it may output "Please wait while WMIC is being installed." followed by the unicode answer.
    Rem cmd /a /c does not work correctly with a mix of single and double byte chars in the file.   So run first command twice (or ignore the problem).
    wmic os get lastbootuptime > %LogFileJunk%
    wmic os get lastbootuptime > %LogFileJunk%

    Rem Following call can be followed by SQL-like filters such as: GET * /format:csv OR GET TimeGenerated,User /format:csv
    wmic NTEVENT WHERE "LogFile='security' AND TimeGenerated > %Recent%" list /format:htable > %LogFileJunk% 2>nul
    dir %LogFileJunk% > NUL
    for %%c in (%LogFileJunk%) do if %%~zc GTR 2 GOTO GotLog1
    Echo !!!Unable to retrieve!!! >> %LogFileTmp%
    GOTO DoneLog1
    :GotLog1
    cmd /a /c type %LogFileJunk% >> %LogFileTmp%

Обратите внимание на обходные пути для wmic:

  • Запустите его дважды, если в первый раз появилось полезное (ANSI) сообщение
  • Убедитесь, что настоящий файл (> 2 символа) был создан
  • В моем случае мне нужно было перевести с Unicode на ANSI (команда «type»)
0

Используйте Logevent.exe:

logevent "This is a test"
logevent -m \\server1 -s W -c 100 -r "my batch program" -e 88 "batch program failed!"

В Windows 2003, XP и Win2K вы можете создавать сеансы ETW, управлять ими и составлять отчеты о них двумя способами: вы можете использовать оснастку «Журналы производительности и предупреждения» консоли управления (MMC) или утилиты командной строки. В Windows 2003 и XP ОС включает утилиты командной строки. В Win2K утилиты командной строки являются частью Microsoft Windows 2000 Server Resource Kit и незначительно отличаются от тех, что в Windows 2003 и XP. В контексте архитектуры ETW оснастка «Журналы и оповещения производительности» и некоторые утилиты командной строки являются приложениями контроллера. Другие утилиты командной строки обеспечивают функцию приложения потребителя.

Используйте один из следующих инструментов для ведения журнала трассировки:

 logman 
 tracelog

Рекомендации

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .