Какой аналог Wevtutil в XP или 2003?

Вопрос или проблема

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

rem Скрипт начинается здесь
rem Генератор временной метки

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

rem Разбор даты (например, Чт 02/28/2013)
set cur_yyyy=%date:~10,4%
set cur_mm=%date:~4,2%
set cur_dd=%date:~7,2%

rem Разбор времени (например, 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 timestamp=%cur_yyyy%%cur_mm%%cur_dd%-%cur_hh%%cur_nn%%cur_ss%%cur_ms%

rem Установка формата имени компьютера
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 Конец скрипта

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

logevent "Это тест"
logevent -m \\server1 -s W -c 100 -r "моя пакетная программа" -e 88 "неудалось выполнить пакетную программу!"

В Windows 2003, XP и Win2K вы можете создавать, управлять и составлять отчеты о сессиях ETW двумя способами: вы можете использовать оснастку “Производительность и алерты” в Microsoft Management Console (MMC) или командные утилиты. В Windows 2003 и XP операционная система включает командные утилиты. В Win2K командные утилиты являются частью комплекта ресурсов Microsoft Windows 2000 Server и немного отличаются от тех, что в Windows 2003 и XP. В контексте архитектуры ETW оснастка “Производительность и алерты” и некоторые командные утилиты являются контроллерными приложениями. Другие командные утилиты обеспечивают функцию потребительского приложения.

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

 logman 
 tracelog

Ссылки

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

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

    Rem В первый раз, когда выполняется WMIC, может появиться сообщение "Пожалуйста, подождите, пока WMIC устанавливается." за которым следует ответ в юникоде.
    Rem cmd /a /c не работает корректно с смесью однобайтовых и многобайтовых символов в файле. Поэтому выполните первую команду дважды (или проигнорируйте проблему).
    wmic os get lastbootuptime > %LogFileJunk%
    wmic os get lastbootuptime > %LogFileJunk%

    Rem Следующий вызов может сопровождаться фильтрами, похожими на SQL, такими как: GET * /format:csv ИЛИ 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 !!!Невозможно получить!!! >> %LogFileTmp%
    GOTO DoneLog1
    :GotLog1
    cmd /a /c type %LogFileJunk% >> %LogFileTmp%

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

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

Ответ или решение

Вопрос о замене Wevtutil в Windows XP и Windows Server 2003 действительно актуален, поскольку утилита Wevtutil доступна только начиная с Windows Vista. Однако в Windows XP и Windows Server 2003 вы можете воспользоваться несколькими альтернативными инструментами для работы с событиями и журналами.

Альтернативы Wevtutil

  1. Logevent.exe

    • Logevent.exe — это утилита, которая позволяет записывать события в системный журнал Windows. Вы можете использовать её как в интерактивном режиме, так и в пакетных файлах, что делает её отличной заменой Wevtutil для записи событий. Пример использования:
      logevent "Это тестовое сообщение"
      logevent -m \\server1 -s W -c 100 -r "моя пакетная программа" -e 88 "не удалось выполнить пакетную программу!"
    • Более подробную информацию о Logevent.exe можно найти в документации Microsoft.
  2. WMIC (Windows Management Instrumentation Command-line)

    • Вы также можете использовать wmic для извлечения информации о событиях. Это может быть менее надежно, но все же обеспечивает возможность получения информации из журналов:
      wmic NTEVENT WHERE "LogFile='Security'" GET *
    • Возможно, вам потребуется обрабатывать вывод для создания отчетов или сохранения информации в файл. Убедитесь, что вы учитываете возможные проблемы с кодировкой.
  3. Tracing Utilities

    • В Windows XP и Server 2003 доступны утилиты для трассировки, такие как logman и tracelog. Эти инструменты могут помочь в создании и управлении сессиями трассировки событий. Они позволяют собирать и анализировать данные, связанные с производительностью системы.
    • Пример использования logman:
      logman create trace MyTrace -p "MyProvider" -o "C:\MyTraceFile.etl"
      logman start MyTrace

Советы по созданию пакетной обработки

Здесь приведен пример того, как может выглядеть ваша пакетная обработка на основе упомянутых инструментов:

@echo off
set BACKUP_PATH=\\shared-drive\it\Temp\Event-Logs\
set cur_date=%date:~10,4%%date:~4,2%%date:~7,2%
set cur_time=%time:~0,2%%time:~3,2%%time:~6,2%

:: Запись события
logevent "Запись журналов начата"

:: Получение и экспорт данных событий
wmic NTEVENT WHERE "LogFile='Application'" GET * > %BACKUP_PATH%\app_events_%cur_date%_%cur_time%.log
wmic NTEVENT WHERE "LogFile='Security'" GET * > %BACKUP_PATH%\sec_events_%cur_date%_%cur_time%.log

:: Сообщение об окончании
logevent "Запись журналов завершена"

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

Заключение

Хотя возможности Windows XP и Server 2003 ограничены по сравнению с более новыми версиями ОС, указанные методы и утилиты предоставляют необходимые средства для работы с событиями. Правильное использование этих инструментов поможет вам сохранить и управлять логами событий на устаревших системах. Если вы ищете более подробную информацию или конкретные примеры, рекомендуется обратиться к официальной документации Microsoft.

Оцените материал
Добавить комментарий

Капча загружается...