Sdílet prostřednictvím


Konzumace událostí (protokol událostí Windows)

Události můžete získávat z kanálů nebo ze souborů protokolu. Pokud chcete využívat události, můžete využívat všechny události nebo můžete zadat výraz XPath, který identifikuje události, které chcete použít. Chcete-li určit prvky a atributy události, které můžete použít ve výrazu XPath, viz schéma událostí.

Protokol událostí systému Windows podporuje podmnožinu XPath 1.0. Podrobnosti o omezeních najdete v tématu omezení XPath 1.0.

Následující příklady ukazují jednoduché výrazy 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]]]

Výrazy XPath můžete použít přímo při volání EvtQuery nebo EvtSubscribe funkcí nebo můžete použít strukturovaný dotaz XML, který obsahuje výraz XPath. U jednoduchých dotazů, které se dotazují na události z jednoho zdroje, je použití výrazu XPath v pořádku. Pokud je výraz XPath složený výraz, který obsahuje více než 20 výrazů nebo dotazujete na události z více zdrojů, je nutné použít strukturovaný dotaz XML. Podrobnosti o prvech strukturovaného dotazu XML naleznete v tématu schéma dotazu.

Strukturovaný dotaz identifikuje zdroj událostí a jeden nebo více selektorů nebo potlačovačů. Selektor obsahuje výrazy XPath, které vyberou události ze zdroje a potlačovač obsahuje výraz XPath, který brání výběru událostí. Události můžete vybrat z více zdrojů. Pokud selektor a potlačovač identifikují stejnou událost, událost nebude zahrnuta do výsledku.

Následující příklad ukazuje strukturovaný dotaz XML, který určuje sadu selektorů a potlačovačů.

<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>

Sada výsledků z dotazu neobsahuje snímek událostí v době dotazu. Sada výsledků místo toho obsahuje události v době dotazu a bude obsahovat také všechny nové události, které se při vytváření výčtu výsledků shodují s kritérii dotazu.

Poznámka

Pořadí událostí je zachováno u událostí, které jsou zapsány stejným vláknem. Je však možné, aby se události napsané samostatnými vlákny na různých procesorech počítače s více procesory zobrazovaly mimo pořadí.

 

Podrobnosti o využívání událostí najdete v následujících tématech:

Standardními nástroji pro koncové uživatele pro využívání událostí jsou:

Omezení XPath 1.0

Protokol událostí systému Windows podporuje podmnožinu XPath 1.0. Primárním omezením je, že pomocí selektoru událostí lze vybrat pouze elementy XML, které představují události. Dotaz XPath, který nevybere událost, není platný. Všechny platné cesty selektoru začínají * nebo "Event". Všechny cesty umístění fungují na uzlech událostí a skládají se z řady kroků. Každý krok je struktura tří částí: osa, test uzlu a predikát. Další informace o těchto částech a o XPath 1.0 naleznete v tématu XML Path Language (XPath). Protokol událostí systému Windows u výrazu ukládá následující omezení:

  • Osa: Podporovány jsou pouze osa Dítě (výchozí) a osa Atribut (a jeho zkratka "@").
  • Testy uzlů: Podporují se pouze názvy uzlů a testy NCName. Podporuje se znak *, který vybere libovolný znak.
  • Predikáty: Jakýkoli platný výraz XPath je přijatelný, pokud cesty k umístění odpovídají následujícím omezením:
    • Podporují se standardní operátory OR, AND, =, !=, <=, <, >=, >a závorky.
    • Generování řetězcové hodnoty pro název uzlu se nepodporuje.
    • Vyhodnocení v obráceném pořadí není podporováno.
    • Sady uzlů se nepodporují.
    • Podpora pro rozsah jmenného prostoru není k dispozici.
    • Uzel jmenného prostoru, zpracování a komentářů nejsou podporovány.
    • Velikost kontextu není podporována.
    • Vazby proměnných nejsou podporovány.
    • Funkce pozice a její zkrácený odkaz na pole je podporován (pouze na uzlech typu list).
    • Je podporována funkce Band. Funkce provede bitovou hodnotu AND pro dva celočíselné argumenty. Pokud je výsledek bitového operátoru AND nenulový, funkce se vyhodnotí jako true; v opačném případě se funkce vyhodnotí jako false.
    • Funkce timediff je podporovaná. Funkce vypočítá rozdíl mezi druhým argumentem a prvním argumentem. Jedním z argumentů musí být literálové číslo. Argumenty musí používat reprezentaci FILETIME. Výsledkem je počet milisekund mezi dvěma časy. Výsledek je pozitivní, pokud druhý argument představuje pozdější čas; jinak je záporná. Pokud druhý argument není zadaný, použije se aktuální systémový čas.