Ereignisanzeige in html ausgeben
01.10.2010
10:47:37 Uhr1887 Aufrufe
7 Antworten
10:47:37 Uhr
7 Antworten
Noch nicht bewertet
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
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...
01.
datei= "c:\logfiles.html" 02.
Set fs = CreateObject("Scripting.FileSystemObject") 03.
set dateineu = fs.createtextfile(datei, true) 04.
dateineu.write "<html><head><title>Ereignisanzeige</title></head><body text=""#000000"" bgcolor=""#FFFFFF"" ><font face=""verdana""" 05.
06.
dateineu.close 07.
set dateineu = nothing 08.
09.
CONST EVENTTYPE_ERROR = "1" 10.
CONST EVENTTYPE_WARNING = "2" 11.
CONST EVENTTYPE_INFORMATION = "3" 12.
CONST EVENTTYPE_SUCCESSAUDIT = "4" 13.
CONST EVENTTYPE_FAILUREAUDIT = "5" 14.
15.
strComputer = "." 16.
arrEventType = array( EVENTTYPE_ERROR, EVENTTYPE_WARNING , EVENTTYPE_FAILUREAUDIT) 17.
Set objWMIService = GetObject("winmgmts:" & "\\" & strComputer & "\root\cimv2") 18.
strSelect = "Select * from Win32_NTLogEvent Where Logfile = 'System'" 19.
'--------------------> hier 4 Beispiele für das Zusammenbasteln des SELECT-Strings 20.
'--------------------> wahlweise auskommentieren 21.
' Set colLoggedEvents = objWMIService.ExecQuery (strSelect & " AND EventType = '" & "1" & "' ") 22.
Set colLoggedEvents = objWMIService.ExecQuery (strSelect & " AND EventType = '" & EVENTTYPE_INFORMATION & "' ") 23.
' Set colLoggedEvents = objWMIService.ExecQuery (strSelect & " AND EventType <> '" & EVENTTYPE_ERROR & "' ") 24.
'Set colLoggedEvents = objWMIService.ExecQuery (strSelect & " AND EventType = '" & arrEventType(1) & "' ") 25.
'Remember: arrEventType(1) == EVENTTYPE_WARNING 26.
For Each objEvent In colLoggedEvents 27.
28.
29.
inhalt = "Category: " & objEvent.Category & " " 30.
inhalt = inhalt & "Computer Name: " & objEvent.ComputerName & " " 31.
inhalt = inhalt & "Event Code: " & objEvent.EventCode & " <br>" 32.
inhalt = inhalt & "<b>Message: " & objEvent.Message & "</b><br>" 33.
inhalt = inhalt & "Record Number: " & objEvent.RecordNumber & " " 34.
inhalt = inhalt & "Source Name: " & objEvent.SourceName & " " 35.
inhalt = inhalt & "Time Written: " & objEvent.TimeWritten & " " 36.
inhalt = inhalt & "Event Type: " & objEvent.Type & " " 37.
inhalt = inhalt & "User: " & objEvent.User & " " 38.
39.
if instr(objEvent.SourceName,"Print") >=1 then 40.
set dateineu = fs.OpenTextFile(datei, 8) 41.
dateineu.write inhalt & "<br><br><br>" 42.
dateineu.close 43.
set dateineu = nothing 44.
end if 45.
46.
Next 47.
48.
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
Arano schreibt am 01.10.2010 um 21:27:44 Uhr
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):
01.
strLogfileName = "c:\logfile.html" 02.
strComputer = "." 03.
04.
CONST EVENTTYPE_ERROR = "1" 05.
CONST EVENTTYPE_WARNING = "2" 06.
CONST EVENTTYPE_INFORMATION = "3" 07.
CONST EVENTTYPE_SUCCESSAUDIT = "4" 08.
CONST EVENTTYPE_FAILUREAUDIT = "5" 09.
10.
11.
' oeffne logdatei zum schreiben 12.
Set objFs = CreateObject("Scripting.FileSystemObject") 13.
Set hndLogfile = objFs.createtextfile(strLogfileName, true) 14.
' schriebe html-header 15.
hndLogfile.write "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01//EN""" & VBCRLF _ 16.
&" ""http://www.w3.org/TR/html4/strict.dtd"">" & VBCRLF _ 17.
&"<html>" & VBCRLF _ 18.
&" <head>" & VBCRLF _ 19.
&" <title>Ereignisanzeige</title>" & VBCRLF _ 20.
&" <style type=""text/css"">" & VBCRLF _ 21.
&" <!--" & VBCRLF _ 22.
&" html, body { margin:0px; padding:0px; }" & VBCRLF _ 23.
&" div.event span { display:block; cursor:pointer; }" & VBCRLF _ 24.
&" div.event:link," & VBCRLF _ 25.
&" div.event:visited { background-color:#000000; }" & VBCRLF _ 26.
&" div.event:hover," & VBCRLF _ 27.
&" div.event:active { background-color:#f0f0f0; }" & VBCRLF _ 28.
&" -->" & VBCRLF _ 29.
&" </style>" & VBCRLF _ 30.
&" <script type=""text/javascript"">" & VBCRLF _ 31.
&" <!--" & VBCRLF _ 32.
&" var eventColorOpened = ""#f0f0f0"";" & VBCRLF _ 33.
&" var eventColorClosed = ""#ffffff"";" & VBCRLF _ 34.
&" function toggle_events(IDS)" & VBCRLF _ 35.
&" {" & VBCRLF _ 36.
&" for(var x=0; x<IDS.length; ++x)" & VBCRLF _ 37.
&" {" & VBCRLF _ 38.
&" document.getElementById(""event_details_""+IDS[x]).style.display = ""none"";" & VBCRLF _ 39.
&" }" & VBCRLF _ 40.
&" }" & VBCRLF _ 41.
&" function toggle_event(ID)" & VBCRLF _ 42.
&" {" & VBCRLF _ 43.
&" var event = document.getElementById(""event_""+ID);" & VBCRLF _ 44.
&" var eventDetails = document.getElementById(""event_details_""+ID);" & VBCRLF _ 45.
&" if(eventDetails.style.display != ""block"")" & VBCRLF _ 46.
&" {" & VBCRLF _ 47.
&" eventDetails.style.display = ""block"";" & VBCRLF _ 48.
&" event.style.backgroundColor = eventColorOpened;" & VBCRLF _ 49.
&" }" & VBCRLF _ 50.
&" else" & VBCRLF _ 51.
&" {" & VBCRLF _ 52.
&" eventDetails.style.display = ""none"";" & VBCRLF _ 53.
&" event.style.backgroundColor = eventColorClosed;" & VBCRLF _ 54.
&" }" & VBCRLF _ 55.
&" }" & VBCRLF _ 56.
&" -->" & VBCRLF _ 57.
&" </script>" & VBCRLF _ 58.
&" </head>" & VBCRLF _ 59.
&" <body>" & VBCRLF & VBCRLF _ 60.
&" <h1>Ereignisanzeige</h1>" & VBCRLF _ 61.
&VBCRLF 62.
63.
' tue erstelle hole... keine ahnung was 64.
Set objWMIService = GetObject("winmgmts:" & "\\" & strComputer & "\root\cimv2") 65.
' query systemlog 66.
strSelectSystemlog = "Select * from Win32_NTLogEvent Where Logfile = 'System'" _ 67.
&"AND EventType <= " & EVENTTYPE_WARNING _ 68.
&"AND SourceName = 'Print'" 69.
' &"AND SourceName = 'EventLog'" 70.
' &"" 71.
' query ausfuehren 72.
Set colLoggedEvents = objWMIService.ExecQuery(strSelectSystemlog) 73.
74.
Dim strEventIds 75.
For Each objEvent In colLoggedEvents 76.
hndLogfile.write "<div class=""event"" id=""event_"& objEvent.RecordNumber &""">" & VBCRLF _ 77.
&" <span onclick=""toggle_event('" & objEvent.RecordNumber & "')"">" _ 78.
& objEvent.Type & " - " & objEvent.User & " @ " _ 79.
& objEvent.ComputerName & " : " & objEvent.EventCode & " = " _ 80.
& objEvent.SourceName _ 81.
&" </span>" & VBCRLF _ 82.
&" <ul id=""event_details_" & objEvent.RecordNumber & """>" & VBCRLF _ 83.
&" <li>Category: " & objEvent.Category & "</li>" & VBCRLF _ 84.
&" <li>Computer Name: " & objEvent.ComputerName & "</li>" & VBCRLF _ 85.
&" <li>Event Code: " & objEvent.EventCode & "</li>" & VBCRLF _ 86.
&" <li>Message: " & objEvent.Message & "</li>" & VBCRLF _ 87.
&" <li>Record Number: " & objEvent.RecordNumber & "</li>" & VBCRLF _ 88.
&" <li>Source Name: " & objEvent.SourceName & "</li>" & VBCRLF _ 89.
&" <li>Time Written: " & objEvent.TimeWritten & "</li>" & VBCRLF _ 90.
&" <li>Event Type: " & objEvent.Type & "</li>" & VBCRLF _ 91.
&" <li>User: " & objEvent.User & "</li>" & VBCRLF _ 92.
&" </ul>" & VBCRLF _ 93.
&"</div>" & VBCRLF _ 94.
& VBCRLF 95.
strEventIds = strEventIds & ",'" & objEvent.RecordNumber & "'" 96.
Next 97.
98.
' entferne das komma am anfang der zeichenkette 99.
strEventIds = Mid(strEventIds, 2) 100.
101.
' schreibe footer in logdatei 102.
hndLogfile.write " <script type=""text/javascript"">" & VBCRLF _ 103.
&" <!--" & VBCRLF _ 104.
&" toggle_events(new Array(" & strEventIds & "));" & VBCRLF _ 105.
&" -->" & VBCRLF _ 106.
&" </script>" & VBCRLF _ 107.
&" </body>" & VBCRLF _ 108.
&"</html>" 109.
' schließe logdatei 110.
hndLogfile.close 111.
Set hndLogfile = nothing 112.
113.
' melde beendete arbeit 114.
wscript.echo "Das aktuelle Sytemlog steht nun in einer HTML-Version zur ferfuegung." & VBCRLF & strLogfile 115.
116.
' ENDE~Arano
mkrasselt1 schreibt am 09.10.2010 um 11:44:51 Uhr
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
Arano schreibt am 09.10.2010 um 12:01:28 Uhr
Hm...
...das ist ja blöde jetzt oO
Wie ich schon im meinem erstem Beitrag schrieb, habe ich keine Ahnung von VBS bzw. waren das meine ersten Erfahrungen mit VBS.
Zeile 13 Teichen 1 ?
Ich glaube es zwar nicht ganz, aber versuch mal das "set" in Zeile 13 durch "Set" zu ersetzen.
~Arano
...das ist ja blöde jetzt oO
Wie ich schon im meinem erstem Beitrag schrieb, habe ich keine Ahnung von VBS bzw. waren das meine ersten Erfahrungen mit VBS.
Zeile 13 Teichen 1 ?
Ich glaube es zwar nicht ganz, aber versuch mal das "set" in Zeile 13 durch "Set" zu ersetzen.
~Arano
mkrasselt1 schreibt am 09.10.2010 um 12:23:59 Uhr
Aha,
es war nicht nur das "S"
sonder auch die Variable die du verwendet hast:
Deins:
Richtig:
Wie du verstehe ich übrigens nicht das geringste von VB 
Michael
es war nicht nur das "S"
sonder auch die Variable die du verwendet hast:
Deins:
01.
Set hndLogfile = objFs.createtextfile(strLogfile, true)01.
Set hndLogfile = objFs.createtextfile(strLogfileName, true)Michael
Arano schreibt am 10.10.2010 um 17:20:00 Uhr
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







