bobbygehtheim
Goto Top

Suche Skript für die Eventlog Analyse

Hallo,

hat irgendjemand ein Skript, mit dem man die Fehler und Warnungen in Eventlogs pro Tag anzeigen lassen kann? Ich mache nämlich Wartungen von Servern per Hand und manche Fehler müllen einem die Eventlogs zu und da wäre eine automatische Analyse schon perfekt.

bobbygehtheim

Content-ID: 219881

Url: https://administrator.de/contentid/219881

Ausgedruckt am: 20.11.2024 um 00:11 Uhr

rubberman
rubberman 20.10.2013 um 01:41:43 Uhr
Goto Top
Hallo bobbygehtheim.

Über WMI und die Win32_NTLogEvent Klasse lässt sich da bestimmt etwas machen.
Andererseits, warum das Rad neu erfinden? Es gibt doch bereits ausreichend Software zum Analysieren der Event Logs.

Grüße
rubberman
bobbygehtheim
bobbygehtheim 28.10.2013 um 15:23:13 Uhr
Goto Top
Hallo,

gibt es da ein empfehlenwertes,freies Skript, welches man auf einem Testserver mal laufen und ggf. anpassen kann?

Wir brauchen kein umfangreiches kommerzielles Tool, sondern nur ein Skript, das wir auch selber für unsere Zwecke anpassen können.

bobbygehtheim
rubberman
rubberman 28.10.2013 um 23:14:41 Uhr
Goto Top
Hallo bobbygehtheim.

Keine Ahnung, aber vermutlich gibt es so etwas schon in den Weiten des WWW. Ist aber kein Hexenwerk, so etwas selbst auf die Beine zu bringen.

*.vbs
Option Explicit
Const strDate       = "28.10.2013" ' Beschränkung auf angegebenes Datum  
Const csvEventTypes = "1,2"        ' anzuzeigende Eventtypen (0=Informationen, 1=Fehler, 2=Warnung, 3=Informantion)  

Const MB_TOPMOST = &H00040000& ' für VBScript undokumentierter Wert für die MsgBox Funktion  
Dim objSWbemDateTime, objWMIService, colEvents, objEvent, colTypes, objType, _
  dtDate, strSWbemDTStart, strSWbemDTStop, strTypes, uIcon

' Datum in UTC SWbemDateTime Format konvertieren  
Set objSWbemDateTime = CreateObject("WbemScripting.SWbemDateTime")  
objSWbemDateTime.SetVarDate CDate(strDate), True
strSWbemDTStart = objSWbemDateTime.value
dtDate = DateAdd("n", CInt(Right(strSWbemDTStart, 4)) * -1, CDate(strDate))  
objSWbemDateTime.SetVarDate dtDate, False
strSWbemDTStart = objSWbemDateTime.value
objSWbemDateTime.SetVarDate dtDate + 1, False
strSWbemDTStop = objSWbemDateTime.value

' Eventtypen aufbereiten  
With (New RegExp)
  .Global = True
  .Pattern = "\b\d+\b"  
  Set colTypes = .Execute(csvEventTypes)
End With
For Each objType In colTypes
  strTypes = strTypes & " OR EventType = " & objType.Value  
Next

' Events mit den vorgegebenen Kriterien sammeln  
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")  
Set colEvents = objWMIService.ExecQuery( _
  "SELECT * FROM Win32_NTLogEvent WHERE TimeGenerated >= '" & strSWbemDTStart & _  
  "' AND TimeGenerated < '" & strSWbemDTStop & "' AND (EventType =" & Mid(strTypes, 16) & ")")  

' Jedes Event verarbeiten und ausgeben  
For Each objEvent In colEvents
  Select Case objEvent.EventType
    Case 0: uIcon = vbInformation
    Case 1: uIcon = vbCritical
    Case 2: uIcon = vbExclamation
    Case 3: uIcon = vbInformation
    Case Else: uIcon = 0
  End Select
  objSWbemDateTime.value = objEvent.TimeGenerated
  MsgBox "Erzeugt: " & vbTab & objSWbemDateTime.GetVarDate(True) & vbNewLine & _  
    "ID: " & vbTab & objEvent.EventCode & vbNewLine & _  
    "Quelle: " & vbTab & objEvent.SourceName & vbNewLine & vbNewLine & _  
    objEvent.Message, _
    uIcon Or vbSystemModal Or MB_TOPMOST, objEvent.Type
Next
Das VBScript kannst du nun nach deinem Gutdünken anpassen ...

Grüße
rubberman