[Code] VB Script Eventlog auslesen --> Help !

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Mrt2006, 17. November 2008 .

  1. 17. November 2008
    VB Script Eventlog auslesen --> Help !

    Hey leute.

    also ich habe Probleme mit einer Aufgabenstellung ^^
    Es geht darum das ich beim Windows Eventlog einen Event auslesen soll und mir den in eine Textdatei ausgeben lassen soll. Soweit war das auch noch einfach.

    Vielleicht zur Klärung warum ich das mache Es geht darum das mein Backup Programm mir keinen Status eines Backups per Email senden kann. Sprich ich bekomme nicht unbedingt mit, dass er überhaupt was gemacht hat. Daher habe ich mit dem Windows Eventtriger was hingebastelt, sodass ich immer eine Email bekomme, wenn die Application gebackuped hat ....

    Schön und gut ^^ jedoch bekomme ich nie die Beschreibung mit zugesandt, sprich ich weiß jetzt, dass er was gemacht hat, aber ob es erfoglreich war oder fehlgeschlagen ist, kann ich nur erahnen. Daher musste ein kleines Script her.


    Code:
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
     & "\\" & strComputer & "\root\cimv2")
     
    Set colLoggedEvents = objWMIService.ExecQuery _
     ("Select * from Win32_NTLogEvent Where EventCode=4101")
     
    For Each objEvent In colLoggedEvents
     WScript.Echo "Category: " & objEvent.Category
     WScript.Echo "Computer Name: " & objEvent.ComputerName
     WScript.Echo "Event Code: " & objEvent.EventCode
     WScript.Echo "Message: " & objEvent.Message
     WScript.Echo "Record Number: " & objEvent.RecordNumber
     WScript.Echo "Source Name: " & objEvent.SourceName
     WScript.Echo "Time Written: " & objEvent.TimeWritten
     WScript.Echo "Event Type: " & objEvent.Type
     
    Next

    jetzt listet das Script mir jeden Event auf mit der TID 4101. Sprich ich nähere mich meinem Problem.
    Jedoch bleiben noch ein paar Probleme. Das Script ist sozusagen ein Selbstläufer ^^ meine Textdatei die ich mir dann immer ausgebe, wird größer und größer ....

    Jetzt die Frage die ich habe, wie kann ich das Script umbasteln, sodass ich immer nur den neusten Event von der TID 4101 bekomme ?
    Damit sich mal jemand nen Bild davon machen kann wie meine ausgabe aussieht, btw bei mir sieht es schöner aus, also eingerückt usw. ^^


    Spoiler


    Leider tappe ich echt im dunkeln gerade ...

    Hoffe mir kann jemand helfen...
    bw ist klar !
    greeze Mrt2006
     
  2. 18. November 2008
    AW: VB Script Eventlog auslesen --> Help !

    naja also dein problem ist ja dass du dir mit der query alle Einträge für diesen Prozess rausholst. Windows wird vmtl. auch alle Einträge während einer Sitzung da reinschreiben. Eine Möglichkeit wäre jetzt das Query so umzuformulieren dass du immer nur den neuesten Eintrag bekommst, also zum beispiel in die richtung:

    ("Select * from Win32_NTLogEvent Where EventCode=4101 ORDER BY id DESC LIMIT 1")
    du bekommst so immer nur das Event mit der höchsten ID (ich weiß nicht wie die primärschlüsseltabelle hier heißt, ordne einfach danach!) und holst dir über das LIMIT nur das erste objekt raus!

    hoffe du kennst dich aus was ich mein, ansonsten einfach ne pm oder so ;-)
     
  3. 18. November 2008
    AW: VB Script Eventlog auslesen --> Help !

    also habe es wie folgt gemacht ... und so funktiert es einwandfrei !!!

     
  4. 18. November 2008
    AW: VB Script Eventlog auslesen --> Help !

    ah ok, jo ist im prinzip durch die last_time_written abfrage genau das gleiche, so läufst du halt alle immer wieder durch! würde man das query so umändern hättest du immer nur genau 1 objekt also immer genau das aktuellste! problem ist halt dabei dass du nicht alle events logst ... =)
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.