Централизованный аудит печати — Описание задачи и решения


 

Цикл статей:

1.       Описание задачи и решения

2.       Сбор событий аудита

3.       Экспорт событий аудита в файл

4.       Загрузка в базу данных

5.       Создание отчёта

6.       Размещение отчёта на Sharepoint

7.       Дополнение 1: Powershell – системные журналы и особенности фильтров по времени

8.       Дополнение 2: Powershell – производительность работы с системными журналами

Читать далее

Powershell – системные журналы и особенности фильтров по времени


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

Читать далее

Powershell – производительность работы с системными журналами


На днях попытался работать с системными журналами из Powershell с помощью командлета Get-WinEvent. На больших журналах работает медленно. Всё относительно конечно. Средняя скорость обработки 200 событий в секунду: для журнала с несколькими сотнями тысяч записей время выполнения командлета состовляет уже десятки минут. При этом полностью занято одно ядро системы.

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

Оказывается хорошей производительностью обладает утилита wevtutil.exe

Она не только может настраивать журналы, но и экспортировать содержимое в отдельный файл и даже выполнять запросы с выводом результатов в текстовом виде или формате XML.

Как и любую утилиту, её можно вызвать из Powershell и обрабатывать её вывод в конвейере.

Правда обнаружилась проблема с локализацией строковых значений (если некоторые атрибуты события на русском), но это решаемо: например, можно записать вывод утилиты wevtutil в файл командлетом Out-File с параметром Encoding и значением OEM.