Я хочу создать статистику принтера, и у меня есть простой, но мощный анализатор XML. Поэтому я хочу экспортировать все события из журнала принтера в формат XML.
Сервер печати работает под управлением Win2008R2. Когда я хочу экспортировать отфильтрованный журнал в XML (у меня есть отфильтрованный идентификатор события 307), у меня есть только 300 событий из почти 6000.
Не могли бы вы помочь мне? Я также пробовал использовать powershell для экспорта журнала, но мне не удалось получить структуру xml.
Утилита 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