Экспорт всего журнала Windows в XML

Я хочу создать статистику принтера, и у меня есть простой, но мощный анализатор XML. Поэтому я хочу экспортировать все события из журнала принтера в формат XML.

Сервер печати работает под управлением Win2008R2. Когда я хочу экспортировать отфильтрованный журнал в XML (я отфильтровал событие с идентификатором 307), у меня есть только 300 событий из почти 6000.

Не могли бы вы помочь мне? Я также пробовал PowerShell для экспорта журнала, но я не смог получить структуру XML.

2 ответа

Утилита Windows wevtutil может сделать то, что вы ищете. Я использовал его для архивирования определенных записей журнала событий в базе данных. У методов на базе PowerShell было несколько режимов отказов, которые делали невозможным повторение большого числа событий. Эта утилита сбрасывает все данные за один раз, что делает анализ в автономном режиме намного быстрее.

wevtutil qe Security /r:DC01 /q:"*[System[((EventID=307))]]" > evtdump.xml

В частности, методы powershell извлекают события на розничной основе. Когда он повторяет цикл, он запрашивает у целевой машины "дать мне следующее событие", что требует много машин туда и обратно. Разница в скорости между методом wevutil и методом powershell была значительной: на извлечение журнала событий через powershell ушло более часа, а через wevtutil - всего 2 минуты.

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

Это должно сделать трюк:

Get-WinEvent | ?{$_.id -eq 307} | Export-Clixml 307Events.xml  
Другие вопросы по тегам