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-Key: 219881

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

Printed on: April 24, 2024 at 19:04 o'clock

Member: rubberman
rubberman Oct 19, 2013 at 23:41:43 (UTC)
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
Member: bobbygehtheim
bobbygehtheim Oct 28, 2013 at 14:23:13 (UTC)
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
Member: rubberman
rubberman Oct 28, 2013 at 22:14:41 (UTC)
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