Delen via


Evenementen verwerken (Windows-gebeurtenislogboek)

U kunt gebeurtenissen van kanalen of logboekbestanden gebruiken. Als u gebeurtenissen wilt gebruiken, kunt u alle gebeurtenissen gebruiken of kunt u een XPath-expressie opgeven waarmee de gebeurtenissen worden geïdentificeerd die u wilt gebruiken. Zie Gebeurtenisschemaom de elementen en kenmerken van een gebeurtenis te bepalen die u in uw XPath-expressie kunt gebruiken.

Windows-gebeurtenislogboek ondersteunt een subset van XPath 1.0. Zie XPath 1.0-beperkingenvoor meer informatie over de beperkingen.

In de volgende voorbeelden ziet u eenvoudige XPath-expressies.

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

U kunt de XPath-expressies rechtstreeks gebruiken bij het aanroepen van de EvtQuery- of EvtSubscribe-functies of u kunt een gestructureerde XML-query gebruiken die de XPath-expressie bevat. Voor eenvoudige query's die query's uitvoeren op gebeurtenissen uit één bron, is het prima om een XPath-expressie te gebruiken. Als de XPath-expressie een samengestelde expressie is die meer dan 20 expressies bevat of als u query's uitvoert op gebeurtenissen uit meerdere bronnen, moet u een gestructureerde XML-query gebruiken. Zie Queryschemavoor meer informatie over de elementen van een gestructureerde XML-queryquery.

Een gestructureerde query identificeert de bron van de gebeurtenissen en een of meer selectoren of onderdrukkers. Een selector bevat een XPath-expressie waarmee gebeurtenissen uit de bron worden geselecteerd en een onderdrukker bevat een XPath-expressie die voorkomt dat gebeurtenissen worden geselecteerd. U kunt gebeurtenissen uit meer dan één bron selecteren. Als een selector en suppressor dezelfde gebeurtenis identificeren, wordt de gebeurtenis niet opgenomen in het resultaat.

Hieronder ziet u een gestructureerde XML-query waarmee een set selectors en onderdrukkers wordt opgegeven.

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

De resultatenset van de query bevat geen momentopname van de gebeurtenissen op het moment van de query. In plaats daarvan bevat de resultatenset de gebeurtenissen op het moment van de query en bevat ook alle nieuwe gebeurtenissen die worden gegenereerd die voldoen aan de querycriteria terwijl u de resultaten opsommen.

Notitie

De volgorde van de gebeurtenissen blijft behouden voor gebeurtenissen die zijn geschreven door dezelfde thread. Het is echter mogelijk dat gebeurtenissen die zijn geschreven door afzonderlijke threads op verschillende processors van een computer met meerdere processors, niet in orde worden weergegeven.

 

Zie de volgende onderwerpen voor meer informatie over het consumeren van gebeurtenissen:

De standaard tools voor eindgebruikers om evenementen te beheren zijn:

XPath 1.0-beperkingen

Windows-gebeurtenislogboek ondersteunt een subset van XPath 1.0. De primaire beperking is dat alleen XML-elementen die gebeurtenissen vertegenwoordigen, kunnen worden geselecteerd door een gebeurteniskiezer. Een XPath-query die geen gebeurtenis selecteert, is ongeldig. Alle geldige selectorpaden beginnen met * of 'Gebeurtenis'. Alle locatiepaden werken op de gebeurtenisknooppunten en bestaan uit een reeks stappen. Elke stap is een structuur van drie onderdelen: de as, knooppunttest en predicaat. Zie XPath Language (XPath)voor meer informatie over deze onderdelen en over XPath 1.0. Windows-gebeurtenislogboek plaatst de volgende beperkingen voor de expressie:

  • As: Alleen de child-as (standaard) en de attribuut-as (en de afkorting '@') worden ondersteund.
  • Knooppunttests: alleen knooppuntnamen en NCName-tests worden ondersteund. Het teken *, dat een willekeurig teken selecteert, wordt ondersteund.
  • Predicaten: Elke geldige XPath-expressie is acceptabel als de locatiepaden voldoen aan de volgende beperkingen:
    • Standaardoperators OR, AND, =, !=, <=, <, >=, >en haakjes worden ondersteund.
    • Het genereren van een tekenreekswaarde voor een knooppuntnaam wordt niet ondersteund.
    • Evaluatie in omgekeerde volgorde wordt niet ondersteund.
    • Knooppuntsets worden niet ondersteund.
    • Het bereik van naamruimten wordt niet ondersteund.
    • Naamruimte-, verwerkings- en opmerkingknooppunten worden niet ondersteund.
    • De contextgrootte wordt niet ondersteund.
    • Variabelebindingen worden niet ondersteund.
    • De positie-functie en de verkorte verwijzing naar array worden ondersteund (alleen op blaadje-knooppunten).
    • De functie Band wordt ondersteund. De functie voert een bitsgewijze EN uit voor twee argumenten voor gehele getallen. Als het resultaat van de bitsgewijze AND niet-nul is, resulteert de functie in waar; anders resulteert de functie in onwaar.
    • De timediff-functie wordt ondersteund. De functie berekent het verschil tussen het tweede argument en het eerste argument. Een van de argumenten moet een letterlijk getal zijn. De argumenten moeten DE FILETIME-weergave gebruiken. Het resultaat is het aantal milliseconden tussen de twee tijdstippen. Het resultaat is positief als het tweede argument een latere tijd vertegenwoordigt; anders is het negatief. Wanneer het tweede argument niet wordt opgegeven, wordt de huidige systeemtijd gebruikt.