Ereignisanzeige in html ausgeben
Da ich gerade eine Anfrage hatte, aus der Ereignisanzeige herauszulesen, wer welches Dokument ausgedruckt hat und weil ich nichts entsprechendes hier gefunden habe...
Hallo Jungs und Mädls!
Anbei ein kurzes Script, das den Inhalt der Ereignisanzeige in eine html-Datei ausgibt...
(Falls es mal wieder jemand brauchen sollte... und damit ich es selbst wieder finde, wenn ichs mal wieder brauche, poste ich es jetzt hier schnell)
Ursprung ist dieses Script hier - Danke an Biber
Ich habe es lediglich um die Ausgabe in einer html-Datei erweitert - no big deal...
PS: die if-Abfrage in den letzten Codezeilen kann bei Bedarf natürlich ersatzlos gestrichen oder verändert werden...
lg
Edi
Hallo Jungs und Mädls!
Anbei ein kurzes Script, das den Inhalt der Ereignisanzeige in eine html-Datei ausgibt...
(Falls es mal wieder jemand brauchen sollte... und damit ich es selbst wieder finde, wenn ichs mal wieder brauche, poste ich es jetzt hier schnell)
Ursprung ist dieses Script hier - Danke an Biber
Ich habe es lediglich um die Ausgabe in einer html-Datei erweitert - no big deal...
datei= "c:\logfiles.html"
Set fs = CreateObject("Scripting.FileSystemObject")
set dateineu = fs.createtextfile(datei, true)
dateineu.write "<html><head><title>Ereignisanzeige</title></head><body text=""#000000"" bgcolor=""#FFFFFF"" ><font face=""verdana"""
dateineu.close
set dateineu = nothing
CONST EVENTTYPE_ERROR = "1"
CONST EVENTTYPE_WARNING = "2"
CONST EVENTTYPE_INFORMATION = "3"
CONST EVENTTYPE_SUCCESSAUDIT = "4"
CONST EVENTTYPE_FAILUREAUDIT = "5"
strComputer = "."
arrEventType = array( EVENTTYPE_ERROR, EVENTTYPE_WARNING , EVENTTYPE_FAILUREAUDIT)
Set objWMIService = GetObject("winmgmts:" & "\\" & strComputer & "\root\cimv2")
strSelect = "Select * from Win32_NTLogEvent Where Logfile = 'System'"
'--------------------> hier 4 Beispiele für das Zusammenbasteln des SELECT-Strings
'--------------------> wahlweise auskommentieren
' Set colLoggedEvents = objWMIService.ExecQuery (strSelect & " AND EventType = '" & "1" & "' ")
Set colLoggedEvents = objWMIService.ExecQuery (strSelect & " AND EventType = '" & EVENTTYPE_INFORMATION & "' ")
' Set colLoggedEvents = objWMIService.ExecQuery (strSelect & " AND EventType <> '" & EVENTTYPE_ERROR & "' ")
'Set colLoggedEvents = objWMIService.ExecQuery (strSelect & " AND EventType = '" & arrEventType(1) & "' ")
'Remember: arrEventType(1) == EVENTTYPE_WARNING
For Each objEvent In colLoggedEvents
inhalt = "Category: " & objEvent.Category & " "
inhalt = inhalt & "Computer Name: " & objEvent.ComputerName & " "
inhalt = inhalt & "Event Code: " & objEvent.EventCode & " <br>"
inhalt = inhalt & "<b>Message: " & objEvent.Message & "</b><br>"
inhalt = inhalt & "Record Number: " & objEvent.RecordNumber & " "
inhalt = inhalt & "Source Name: " & objEvent.SourceName & " "
inhalt = inhalt & "Time Written: " & objEvent.TimeWritten & " "
inhalt = inhalt & "Event Type: " & objEvent.Type & " "
inhalt = inhalt & "User: " & objEvent.User & " "
if instr(objEvent.SourceName,"Print") >=1 then
set dateineu = fs.OpenTextFile(datei, 8)
dateineu.write inhalt & "<br><br><br>"
dateineu.close
set dateineu = nothing
end if
Next
wscript.echo "Arbeit getan, Herr und Meister"
PS: die if-Abfrage in den letzten Codezeilen kann bei Bedarf natürlich ersatzlos gestrichen oder verändert werden...
lg
Edi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 152168
Url: https://administrator.de/contentid/152168
Ausgedruckt am: 22.11.2024 um 01:11 Uhr
7 Kommentare
Neuester Kommentar
Ich habe es lediglich um die Ausgabe in einer html-Datei erweitert - no big deal...
PAH, "nur" die Dateierweiterung von txt auf html zu ändern macht aus dem Inhalt noch lange kein HTML - auch nicht wenn man ein paar HTML-Tags verwendet !Ich frage mich gerade warum ich das jetzt eigentlich gemacht habe - zumal ich noch nie etwas in VBS gemacht habe, aber löschen will ich es jetzt auch nicht mehr... Damit bekommst du deine HTML-Ausgabe (Strict & Valide & und mit Javascript geschmückt):
strLogfileName = "c:\logfile.html"
strComputer = "."
CONST EVENTTYPE_ERROR = "1"
CONST EVENTTYPE_WARNING = "2"
CONST EVENTTYPE_INFORMATION = "3"
CONST EVENTTYPE_SUCCESSAUDIT = "4"
CONST EVENTTYPE_FAILUREAUDIT = "5"
' oeffne logdatei zum schreiben
Set objFs = CreateObject("Scripting.FileSystemObject")
Set hndLogfile = objFs.createtextfile(strLogfileName, true)
' schriebe html-header
hndLogfile.write "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01//EN""" & VBCRLF _
&" ""http://www.w3.org/TR/html4/strict.dtd"">" & VBCRLF _
&"<html>" & VBCRLF _
&" <head>" & VBCRLF _
&" <title>Ereignisanzeige</title>" & VBCRLF _
&" <style type=""text/css"">" & VBCRLF _
&" <!--" & VBCRLF _
&" html, body { margin:0px; padding:0px; }" & VBCRLF _
&" div.event span { display:block; cursor:pointer; }" & VBCRLF _
&" div.event:link," & VBCRLF _
&" div.event:visited { background-color:#000000; }" & VBCRLF _
&" div.event:hover," & VBCRLF _
&" div.event:active { background-color:#f0f0f0; }" & VBCRLF _
&" -->" & VBCRLF _
&" </style>" & VBCRLF _
&" <script type=""text/javascript"">" & VBCRLF _
&" <!--" & VBCRLF _
&" var eventColorOpened = ""#f0f0f0"";" & VBCRLF _
&" var eventColorClosed = ""#ffffff"";" & VBCRLF _
&" function toggle_events(IDS)" & VBCRLF _
&" {" & VBCRLF _
&" for(var x=0; x<IDS.length; ++x)" & VBCRLF _
&" {" & VBCRLF _
&" document.getElementById(""event_details_""+IDS[x]).style.display = ""none"";" & VBCRLF _
&" }" & VBCRLF _
&" }" & VBCRLF _
&" function toggle_event(ID)" & VBCRLF _
&" {" & VBCRLF _
&" var event = document.getElementById(""event_""+ID);" & VBCRLF _
&" var eventDetails = document.getElementById(""event_details_""+ID);" & VBCRLF _
&" if(eventDetails.style.display != ""block"")" & VBCRLF _
&" {" & VBCRLF _
&" eventDetails.style.display = ""block"";" & VBCRLF _
&" event.style.backgroundColor = eventColorOpened;" & VBCRLF _
&" }" & VBCRLF _
&" else" & VBCRLF _
&" {" & VBCRLF _
&" eventDetails.style.display = ""none"";" & VBCRLF _
&" event.style.backgroundColor = eventColorClosed;" & VBCRLF _
&" }" & VBCRLF _
&" }" & VBCRLF _
&" -->" & VBCRLF _
&" </script>" & VBCRLF _
&" </head>" & VBCRLF _
&" <body>" & VBCRLF & VBCRLF _
&" <h1>Ereignisanzeige</h1>" & VBCRLF _
&VBCRLF
' tue erstelle hole... keine ahnung was
Set objWMIService = GetObject("winmgmts:" & "\\" & strComputer & "\root\cimv2")
' query systemlog
strSelectSystemlog = "Select * from Win32_NTLogEvent Where Logfile = 'System'" _
&"AND EventType <= " & EVENTTYPE_WARNING _
&"AND SourceName = 'Print'"
' &"AND SourceName = 'EventLog'"
' &""
' query ausfuehren
Set colLoggedEvents = objWMIService.ExecQuery(strSelectSystemlog)
Dim strEventIds
For Each objEvent In colLoggedEvents
hndLogfile.write "<div class=""event"" id=""event_"& objEvent.RecordNumber &""">" & VBCRLF _
&" <span onclick=""toggle_event('" & objEvent.RecordNumber & "')"">" _
& objEvent.Type & " - " & objEvent.User & " @ " _
& objEvent.ComputerName & " : " & objEvent.EventCode & " = " _
& objEvent.SourceName _
&" </span>" & VBCRLF _
&" <ul id=""event_details_" & objEvent.RecordNumber & """>" & VBCRLF _
&" <li>Category: " & objEvent.Category & "</li>" & VBCRLF _
&" <li>Computer Name: " & objEvent.ComputerName & "</li>" & VBCRLF _
&" <li>Event Code: " & objEvent.EventCode & "</li>" & VBCRLF _
&" <li>Message: " & objEvent.Message & "</li>" & VBCRLF _
&" <li>Record Number: " & objEvent.RecordNumber & "</li>" & VBCRLF _
&" <li>Source Name: " & objEvent.SourceName & "</li>" & VBCRLF _
&" <li>Time Written: " & objEvent.TimeWritten & "</li>" & VBCRLF _
&" <li>Event Type: " & objEvent.Type & "</li>" & VBCRLF _
&" <li>User: " & objEvent.User & "</li>" & VBCRLF _
&" </ul>" & VBCRLF _
&"</div>" & VBCRLF _
& VBCRLF
strEventIds = strEventIds & ",'" & objEvent.RecordNumber & "'"
Next
' entferne das komma am anfang der zeichenkette
strEventIds = Mid(strEventIds, 2)
' schreibe footer in logdatei
hndLogfile.write " <script type=""text/javascript"">" & VBCRLF _
&" <!--" & VBCRLF _
&" toggle_events(new Array(" & strEventIds & "));" & VBCRLF _
&" -->" & VBCRLF _
&" </script>" & VBCRLF _
&" </body>" & VBCRLF _
&"</html>"
' schließe logdatei
hndLogfile.close
Set hndLogfile = nothing
' melde beendete arbeit
wscript.echo "Das aktuelle Sytemlog steht nun in einer HTML-Version zur ferfuegung." & VBCRLF & strLogfile
' ENDE
~Arano
Hallo Arno,
danke, hat fast funktioniert.
er zeigt mir einen Fehler in
zeile 13
Zeichen 1
Fehler: Ungültiger Prozeduraufruf oder ungültiges Argument
Code: 800A0005
Quelle: Laufzeitfehler in Mircrosoft VB Script
Sagt dir das was ?
ist nicht dringend, aber ich sammle solche system Scripte, hab später mal was damit vor ...
Michael
danke, hat fast funktioniert.
er zeigt mir einen Fehler in
zeile 13
Zeichen 1
Fehler: Ungültiger Prozeduraufruf oder ungültiges Argument
Code: 800A0005
Quelle: Laufzeitfehler in Mircrosoft VB Script
Sagt dir das was ?
ist nicht dringend, aber ich sammle solche system Scripte, hab später mal was damit vor ...
Michael
Oh man...
Wollte das schon gestern machen, kam aber nicht dazu weil men Rechner mich nicht lässt.
Jetzt sitze ich an 500Mhz oO (Gedult ist eine Tugent die ich noch üben muss )
Nun gut, interessanterweise habe ich den Fehler __nicht__ in meiner Datei stehen, keine Ahnung wie ich den ins Forum bekommen habe !?
Habe es jedenfalls in meinem Post korrigiert, so das es dort nun richtig steht.
Einen schönen Sonntag noch
~Arano
Wollte das schon gestern machen, kam aber nicht dazu weil men Rechner mich nicht lässt.
Jetzt sitze ich an 500Mhz oO (Gedult ist eine Tugent die ich noch üben muss )
Nun gut, interessanterweise habe ich den Fehler __nicht__ in meiner Datei stehen, keine Ahnung wie ich den ins Forum bekommen habe !?
Habe es jedenfalls in meinem Post korrigiert, so das es dort nun richtig steht.
Einen schönen Sonntag noch
~Arano