2017-07-13 3 views
0

Ich versuche, die Ereignisprotokolle zu lesen, die nach einer bestimmten Zeit generiert werden, aber es gibt ungültige Abfrage Zeichenfolge Ausnahme.Erstellen Sie benutzerdefinierte XPath für Zeit erstellt

Ich habe msdn site wie xpaths und unten ist meine Implementierung.Was ist falsch in meinem Code.

var Date = "6/13/2017 3:51:10 PM"; 
     string queryString = "*[System/TimeCreated/@SystemTime >=" + Date + "]]"; 
     SecureString pw = GetPassword(); 

     EventLogSession session = new EventLogSession(
      "MachineName",        // Remote Computer 
      "DomainName",         // Domain 
      "userName",        // Username 
      pw, 
      SessionAuthentication.Default); 

     pw.Dispose(); 
     EventLogQuery query = new EventLogQuery("Application", PathType.LogName, queryString); 
     query.Session = session; 

     try 
     { 
      EventLogReader logReader = new EventLogReader(query); 
      for (EventRecord eventDetail = logReader.ReadEvent(); eventDetail != null; eventDetail = logReader.ReadEvent()) 
      { 
       var date = eventDetail.TimeCreated; 
      } 

      // Display event info 
     } 
     catch (EventLogException e) 
     { 
      Console.WriteLine("Could not query the remote computer! " + e.Message); 
      return; 
     } 

Antwort

0

Im XPath müssen Sie zwei Dinge tun. Zuerst müssen Sie den Datumswert angeben, da es sich um eine Zeichenfolge handelt. Zweitens müssen Sie das ISO-Format verwenden, da dies das Format ist, in dem es sich befindet.

var Date = "2017-06-13T15:51:10Z"; 
string queryString = "*[System/TimeCreated[@SystemTime >='" + Date + "']]"; 
+0

Noch gibt es die gleiche Ausnahme. –

+0

Was ist der Wert von Querystring? – Ben

+0

Sieht aus, als ob die eckigen Klammern auch nicht ausgewogen wären. – Ben

Verwandte Themen