6
votes

Format de temps EventLogQuery attendu?

J'essaie d'utiliser la classe EventLogQuery pour interroger l'événement. J'ai suivi l'exemple indiqué sur http://msdn.microsoft. com / fr-nous / bibliothèque / bb671200% 28v = vs.90% 29.aspx # y0 .

J'ai recherché Google une tonne mais je ne trouve aucune requête avec le @Systemtime pas du mal à codé en dur.

Est-ce que quelqu'un connaît le format DateTime que j'ai besoin d'utiliser pour cela? Tout ce que j'ai essayé jusqu'à présent a renvoyé des exceptions "Query invalides".


0 commentaires

5 Réponses :


0
votes

événement XML

Il y a un exemple ici de la XML avec une version à chaîne du format de date prévu. xxx


2 commentaires

J'apprécie l'aide. Cependant, pourriez-vous me donner un exemple de ce que la chaîne de format ressemblerait à cela?


@ user1106686 J'ai modifié ma réponse pour inclure la ligne de l'exemple avec une date de date de la chaîne. J'espère que cela t'aides.



16
votes

EventLogQuery utilise un format XML pour interroger le journal des événements. Vous pouvez trouver le schéma pour la requête XML ici .

le texte du Sélectionnez l'élément est une expression XPath évaluée contre la sérialisation XML de Événements.

Vous pouvez trouver le schéma de l'événement XML ici .

le élément chirurgical A un système d'attributs de type DateTime , donc le format de ceci (dans votre Query XML) est tout ce qu'un processeur XPATH peut analyser comme DateTime valide (voir 3.2.7.1. représentation lexicale pour les spécificités).

Par exemple, vous pouvez t Ry une requête comme ceci: xxx

qui analyse et renvoie une valeur si vous avez un événement créé exactement à la date et à l'heure donnée.

Aussi daturant est une fonction d'extension au protocole XPath du filtre, qui prend un ou deux arguments de SystemTime Type et retourne un numéro, alors utilisez simplement un numéro d'expression avec cette fonction (comme dans votre exemple).


ps Vous pouvez utiliser la visionneuse d'événements Windows (% windir% \ system32 \ eventvwr.msc ) pour saisir et évaluer rapidement la requête d'événement XML par Création de vues personnalisées (Windows Vista, 7 et 2008 uniquement):

 Entrez la description de l'image ici


1 commentaires

merci grand post. Je voudrais juste ajouter ici est que le format de date d'heure accepté ici est dtoBj.tostring ("O"). DtoBJ est votre objet DateTime de départ.



2
votes

Voici un exemple C # pour initialiser un objet EventLogQuery qui ne chargera que des entrées d'événement du dernier jour. xxx


0 commentaires

5
votes

Voici un autre C # pour initialiser un objet EventLogQuery qui chargera des entrées d'événement pour une plage de date spécifique

var startTime = DateTime.Now.AddDays(-1);
var endTime = DateTime.Now;

var query = string.Format("*[System[TimeCreated[@SystemTime >= '{0}']]] and *[System[TimeCreated[@SystemTime <= '{1}']]]",
    startTime.ToUniversalTime().ToString("o"),
    endTime.ToUniversalTime().ToString("o"));

var elq = new EventLogQuery("Applicaton", PathType.LogName, query);


0 commentaires

0
votes

Liste IP de connexion en échec dans les 2 dernières heures. EventID = 4625 et crééDate> = 2 dernières heures xxx


0 commentaires