Пошук у журналі подій за допомогою фільтра XML

Windows, Exchange, e.t.c.

Пошук у журналі подій за допомогою фільтра XML

Потрібно було знайти всі події з певним значенням, а саме ті, де поле "LogonID" містить певне значення. Для цього в оснастціServerManagerвідкривEventViewerі скористався XML-фільтром. Ось як це виглядає. Наприклад у журналіSecurityви хочете знайти подію, яка містить певне значення у певному полі. У моєму випадку це поле називалося Logon ID. Для цього відкриваємо схожу подію, переключаємося на вкладкуDetailsі включаємоXMLView. Потім знаходимо розділ «EventData» і дивимося як називається поле, що цікавить нас. На основі цього ми будуватимемо наш XML-запит.

подій
Тепер запускаємо фільтр. Для цього натискаємо правою кнопкою миші по журналу, що цікавить нас, в моєму випадку цежурнал безпеки (Security)і вибираємо пункт меню «FilterCurrentLog…».
пошук
У вікні перемикаємося на вкладку «XML». Тут бачимо приклад стандартного запиту на пошук всіх подій без винятку. Наше завдання встановити фільтр для пошуку. Для цього нам потрібно розмістити його між тегами і.Саме на те місце, де за умовчанням стоїть зірочка. Щоб це зробити, потрібно поставити галочку в полі «Edit query manually».
пошук
У діалоговому вікні, що з'явилося, натисніть “Yes”. Поле запиту XML стане доступним для редагування. Вводимо туди відповідний запит і натискаємо “OK”. У моєму випадку запит складається з наступного рядка*[EventData[Data[@Name="SubjectLogonId"] and (Data="0x3e7")]]
подій

Той самий результат можна отримати за допомогою PowerShell. Для цього потрібно запустити консоль PowerShell у режимі адміністратора таввести команду

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

Підкажіть як відфільтрувати по 2 полям з EventData: наприклад SubjectUserName і ObjectName

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