EventLogQuery utilizza un formato XML per interrogare il registro eventi. È possibile trovare lo schema per la query XML here.
Il testo di Select element è un'espressione XPath valutata rispetto alla serializzazione XML degli eventi.
È possibile trovare lo schema per l'evento XML here.
Il TimeCreated element ha un attributo di tipo SystemTime dateTime, in modo che il formato di questo (in XML query) è tutto ciò che un processore XPath in grado di analizzare come DateTime valido (vedi 3.2.7.1. Lexical representation per le specifiche).
Per esempio si può provare una query come questa:
<QueryList>
<Query Id="0" Path="Application">
<Select Path="Application">*[System[TimeCreated[@SystemTime = '2011-12-20T00:42:53.000000000Z']]]</Select>
</Query>
</QueryList>
Quali analizza e restituisce un valore, se vi capita di avere un evento creato esattamente alla data e l'ora dato.
anche dateDiff è una funzione estensione del protocollo filtro XPath, che richiede uno o due argomenti di SYSTEMTIME tipo e restituisce un numero, quindi basta usare un numero in un'espressione con questa funzione (proprio come nel tuo esempio).
P.S. È possibile utilizzare il Visualizzatore eventi di Windows (%windir%\system32\eventvwr.msc
) per entrare e valutare rapidamente query di eventi XML creating Custom Views (Windows Vista, 7 e nel 2008 solo):
fonte
2011-12-20 12:22:27
Grazie mille. La tua risposta è stata un vero toccasana. – user1106686
Contento di aver potuto aiutare. Si prega di contrassegnare come risposta. –
grazie fantastico post. Vorrei solo aggiungere che il formato data ora accettato qui è dtObj.ToString ("O").dtObj è l'oggetto datetime di partenza. – sunder