Поделиться через


Использование событий из журнала событий 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>

Результирующий набор по запросу не содержит снимка событий во время выполнения запроса. Набор результатов будет включать события, которые соответствуют критериям запроса в момент его выполнения, и также будет содержать все новые события, появляющиеся во время получения результатов.

Заметка

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

 

Дополнительные сведения о потреблении событий см. в следующих разделах:

Стандартные инструменты конечных пользователей для потребления событий:

Ограничения XPath 1.0

Журнал событий Windows поддерживает подмножество XPath 1.0. Основное ограничение заключается в том, что только XML-элементы, представляющие события, могут быть выбраны селектором событий. Запрос XPath, который не выбирает событие, является недопустимым. Все допустимые пути селектора начинаются с * или "Событие". Все пути доступа действуют на узлах событий и состоят из ряда шагов. Каждый шаг представляет собой структуру из трех частей: оси, теста узла и предиката. Дополнительные сведения об этих частях и о XPath 1.0 см. в языке XML-пути (XPath). Журнал событий Windows помещает следующие ограничения на выражение:

  • Ось: поддерживаются только ось Дочернего элемента (по умолчанию) и ось Атрибута (с ее сокращением "@").
  • Тесты узлов: поддерживаются только имена узлов и тесты NCName. Символ "*", который выбирает любой символ, поддерживается.
  • Предикаты: любое допустимое выражение XPath допустимо, если пути расположения соответствуют следующим ограничениям:
    • Стандартные операторы OR, AND, =, !=, <=, <, >=, >и круглые скобки поддерживаются.
    • Создание строкового значения для имени узла не поддерживается.
    • Оценка в обратном порядке не поддерживается.
    • Наборы узлов не поддерживаются.
    • Области пространства имен не поддерживаются.
    • Узлы пространства имен, обработки и комментариев не поддерживаются.
    • Размер контекста не поддерживается.
    • Привязки переменных не поддерживаются.
    • Функция позиции и ее сокращенная ссылка на массив поддерживаются (только на конечных узлах).
    • Функция Band поддерживается. Функция выполняет побитовое И для двух целых числовых аргументов. Если результат битового И является ненулевым, функция принимает значение true; в противном случае функция принимает значение false.
    • Поддерживается функция timediff. Функция вычисляет разницу между вторым аргументом и первым аргументом. Один из аргументов должен быть литеральным числом. Аргументы должны использовать представление FILETIME. Результатом является число миллисекунд между двумя моментами времени. Результат положительный, если второй аргумент представляет позднее время; в противном случае это отрицательно. Если второй аргумент не указан, используется текущее системное время.