понедельник, 2 июля 2012 г.

Поиск в журнале событий при помощи XML-фильтра

Нужно было найти все события с определенным значением, а именно те, где поле «Logon ID» содержит определенное значение. Для этого в оснастке Server Manager открыл Event Viewer и воспользовался XML-фильтром. Вот как это выглядит.
Например в журнале Security вы хотите найти событие, которое содержит определенное значение в определенном поле. В моем случае это поле называлось Logon ID.
clip_image001
Для этого открываем похожее событие, переключаемся на вкладку Details и включаем XML View. Затем находим раздел «EventData» и смотрим как называется интересующее нас поле. На основе этого мы будем строить наш XML-запрос.
clip_image002
Теперь запускаем фильтр. Для этого нажимаем правой кнопкой мыши по интересующему нас журналу, в моем случае это журнал безопасности (Security) и выбираем пункт меню «Filter Current Log…».
clip_image003
В открывшемся окне переключаемся на вкладку «XML». Здесь мы видим пример стандартного запроса на поиск всех событий без исключения. Наша задача задать фильтр для поиска. Для этого нам нужно разместить его между тегами <Select Path=”Application”> и </Select>. Именно на то место где по умолчанию стоит звездочка. Чтобы это сделать нужно поставить галочку в поле «Edit query manually».
clip_image004
В появившемся диалоговом окне нажмите “Yes”.
clip_image005
Поле XML-запроса станет доступным для редактирования. Вводим туда соответствующий запрос и нажимаем “OK”.
В моем случае запрос состоит из следующей строчки
*[EventData[Data[@Name="SubjectLogonId"] and (Data="0x3e7")]]
clip_image006

Тот же результат можно получить при помощи PowerShell. Для этого нужно запустить консоль PowerShell в режиме администратора и ввести команду

Get-WinEvent -LogName Security -FilterXPath "*[EventData[Data[@Name='SubjectLogonId'] and (Data='0x3e7')]]"

2 комментария:

  1. Подскажите как отфильтровать по 2 полям из EventData: например по SubjectUserName и ObjectName

    ОтветитьУдалить
  2. Get-WinEvent -LogName Security -FilterXPath "*[
    (EventData[Data[@Name='SubjectLogonId'] and (Data='0x3e7')])
    and
    (EventData[Data[@Name='SubjectUserName'] and (Data='UserName')])
    ]"

    ОтветитьУдалить