Использование событий (журнал событий Windows)
События можно использовать из каналов или из файлов журналов. Для использования событий можно использовать все события или указать выражение XPath, определяющее события, которые требуется использовать. Чтобы определить элементы и атрибуты события, которые можно использовать в выражении XPath, см. схему событий.
Windows журнал событий поддерживает подмножество XPath 1.0. Дополнительные сведения об ограничениях см. в разделе об ограничениях XPath 1.0.
В следующих примерах показаны простые выражения XPath.
// The following query selects all events from the channel or log file
XPath Query: *
// The following query selects all the LowOnMemory events from the channel or log file
XPath Query: *[UserData/LowOnMemory]
// The following query selects all events with a severity level of 1 (Critical) from the channel or log file
XPath Query: *[System/Level=1]
// The following query shows a compound expression that selects all events from the channel or log file
// where the printer's name is MyPrinter and severity level is 1.
XPath Query: *[UserData/*/PrinterName="MyPrinter" and System/Level=1]
// The following query selects all events from the channel or log file where the severity level is
// less than or equal to 3 and the event occurred in the last 24 hour period.
XPath Query: *[System[(Level <= 3) and TimeCreated[timediff(@SystemTime) <= 86400000]]]
Выражения XPath можно использовать непосредственно при вызове функций EvtQuery или EvtSubscribe или использовать структурированный XML-запрос, содержащий выражение XPath. Для простых запросов, запрашивающих события из одного источника, можно использовать выражение XPath. Если выражение XPath — это составное выражение, содержащее более 20 выражений или запрашивающее события из нескольких источников, необходимо использовать структурированный XML-запрос. Дополнительные сведения об элементах структурированного XML-запроса см. в разделе "Схема запроса".
Структурированный запрос определяет источник событий и один или несколько селекторов или подавителей. Селектор содержит выражения XPath, которые выбирают события из источника, а подавитель содержит выражение XPath, которое предотвращает выбор событий. События можно выбрать из нескольких источников. Если селектор и подавитель идентифицируют одно и то же событие, это событие не включается в результат.
Ниже показан структурированный XML-запрос, указывающий набор селекторов и подавителей.
<QueryList>
<Query Id="0">
<Select Path="Application">
*[System[(Level <= 3) and
TimeCreated[timediff(@SystemTime) <= 86400000]]]
</Select>
<Suppress Path="Application">
*[System[(Level = 2)]]
</Suppress>
<Select Path="System">
*[System[(Level=1 or Level=2 or Level=3) and
TimeCreated[timediff(@SystemTime) <= 86400000]]]
</Select>
</Query>
</QueryList>
Результирующий набор из запроса не содержит моментальный снимок событий во время запроса. Вместо этого результирующий набор включает события во время запроса, а также будет содержать все новые события, которые создаются в соответствии с критериями запроса при перечислении результатов.
Примечание
Порядок событий сохраняется для событий, записываемых тем же потоком. Однако события, написанные отдельными потоками на разных процессорах компьютера с несколькими процессорами, могут отображаться не по порядку.
Дополнительные сведения об использовании событий см. в следующих разделах:
- Запрос событий
- Подписка на события
- События отрисовки
- Форматирование сообщений о событиях
- События закладок
Стандартные средства конечных пользователей для использования событий:
- Просмотр событий
- Командлет Get-WinEvent Windows PowerShell
- WevtUtil
Ограничения XPath 1.0
Windows журнал событий поддерживает подмножество XPath 1.0. Основное ограничение заключается в том, что с помощью селектора событий можно выбрать только XML-элементы, представляющие события. Недопустимый запрос XPath, который не выбирает событие. Все допустимые пути селектора начинаются с * или "Event". Все пути расположения работают на узлах событий и состоят из ряда шагов. Каждый шаг представляет собой структуру из трех частей: оси, теста узла и предиката. Дополнительные сведения об этих частях и о XPath 1.0 см. на языке XML-пути (XPath). Windows журнал событий устанавливает следующие ограничения на выражение:
- Ось: поддерживаются только дочерние (по умолчанию) и атрибуты (и ее сокращенная ось @).
- Тесты узлов: поддерживаются только имена узлов и тесты NCName. Поддерживается символ "*", который выбирает любой символ.
- Предикаты: любое допустимое выражение XPath допустимо, если пути к расположению соответствуют следующим ограничениям:
- Поддерживаются стандартные операторы OR, AND, =, !=, <=, <>=, >и круглые скобки.
- Создание строкового значения для имени узла не поддерживается.
- Оценка в обратном порядке не поддерживается.
- Наборы узлов не поддерживаются.
- Определение области пространства имен не поддерживается.
- Узлы имен, обработки и комментариев не поддерживаются.
- Размер контекста не поддерживается.
- Привязки переменных не поддерживаются.
- Функция position и ссылка на сокращенный массив поддерживаются (только на конечных узлах).
- Функция Band поддерживается. Функция выполняет побитовое И для двух целочисленных аргументов числа. Если результат побитового И не равен нулю, функция возвращает значение true; в противном случае функция возвращает значение false.
- Функция timediff поддерживается. Функция вычисляет разницу между вторым аргументом и первым аргументом. Один из аргументов должен быть литеральным числом. Аргументы должны использовать представление FILETIME. Результатом является количество миллисекундах между двумя разами. Результат положительный, если второй аргумент представляет позднее; в противном случае это отрицательное значение. Если второй аргумент не указан, используется текущее системное время.