Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBS - Eventlog-Einträge (Application- und Systemlog) der letzten 24 h anzeigen

Frage Entwicklung Batch & Shell

Mitglied: TuXHunt3R

TuXHunt3R (Level 3) - Jetzt verbinden

14.02.2008, aktualisiert 18.10.2012, 8617 Aufrufe, 10 Kommentare

Hallo ans Forum

Wie liest man mit VBS das Eventlog eines Remotecomputers aus?
Konkret will ich alle Warnungen und Errors der letzen 24h des Zielsystems angezeigt bekommen, und zwar die des Application- und des Systemlogs.
Wie geht das?

Bei Batch gehts mit dem Tool dumpel.exe, aber ich möchte von Batch endlich mal wegkommen....

Danke im Voraus


Gruss TuXHunT3R

Edit:
Falls die Unterscheidung von Application und Systemlog zu kompliziert wird, reicht es auch, wenn einfach von allen Logs die Warnungen und Errors herausgelesen werden.
Mitglied: bastla
14.02.2008 um 22:14 Uhr
Hallo TuXHunt3R!

Als Basis (mit ein wenig Formatierung):
01.
strComputer = "Remotecomputer" 
02.
strPath = "D:\Eventlog_EW.csv" 
03.
strDelim = ";" 
04.
intDays = 1 'ab gestern (Datum - 1) 
05.
 
06.
strDate = CStr(Mid(Date - intDays, 7, 4)) & CStr(Mid(Date - intDays, 4, 2)) & CStr(Mid(Date - intDays, 1, 2)) 
07.
 
08.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
09.
Set objFile = objFSO.CreateTextFile(strPath, True) 
10.
 
11.
Set objWMI = GetObject("winmgmts:" & _ 
12.
	"{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
13.
Set colLoggedEvents = objWMI.ExecQuery _ 
14.
	("Select * from Win32_NTLogEvent Where " & _ 
15.
	"(Logfile = 'System' Or LogFile = 'Application') And " & _ 
16.
	"EventType < '3' And TimeWritten > '" & strDate & "'") 'nur Typ 1 (Error) und 2 (Warning) 
17.
 
18.
For Each objEvent in colLoggedEvents 
19.
	With objEvent 
20.
		strLine = .Logfile 
21.
		Select Case LCase(.Type) 
22.
		Case "error" 
23.
			strLine = strLine & strDelim & "Fehler" 
24.
		Case "warning" 
25.
			strLine = strLine & strDelim & "Warnung" 
26.
		Case Else 'dürfte hier nicht vorkommen 
27.
			strLine = strLine & strDelim & "Anderer" 
28.
		End Select 
29.
		strLine = strLine & strDelim & Mid(.TimeWritten, 7, 2) & "." & Mid(.TimeWritten, 5, 2) & "." & Mid(.TimeWritten, 1, 4) 
30.
		strLine = strLine & strDelim & Mid(.TimeWritten, 9, 2) & ":" & Mid(.TimeWritten, 11, 2) & ":" & Mid(.TimeWritten, 13, 2) 
31.
		strLine = strLine & strDelim & .SourceName 
32.
		If .Category <> "0" Then 
33.
			strLine = strLine & strDelim & .Category 
34.
		Else 
35.
			strLine = strLine & strDelim & "Keine" 
36.
		End If 
37.
		strLine = strLine & strDelim & .EventCode 
38.
		If .User <> "" Then 
39.
			strLine = strLine & strDelim & .User 
40.
		Else 
41.
			strLine = strLine & strDelim & "Nicht zutreffend"		 
42.
		End If 
43.
		strLine = strLine & strDelim & .ComputerName 
44.
	End With 
45.
	'WScript.Echo strLine 'zum Testen über cscript.exe 
46.
	objFile.WriteLine strLine 
47.
Next 
48.
objFile.Close
Zur Vereinfachung (nur Datumsabfrage) werden alle Events seit gestern (und demnach < 48 Stunden) erfasst.

Noch ein paar Links:
Win32_NTLogEvent Class
How Can I Retrieve Just Audit Failures, Warnings, and Errors from My Event Logs?
Guy's Scripting Ezine 39 - WMI and Event Logs

Grüße
bastla
Bitte warten ..
Mitglied: TuXHunt3R
15.02.2008 um 13:03 Uhr
Danke, werds testen. Gebe dir heute oder morgen Bescheid.
Bitte warten ..
Mitglied: TuXHunt3R
18.02.2008 um 12:26 Uhr
Konnte es leider noch nicht testen. Dauert noch ein Weilchen.....
Bitte warten ..
Mitglied: TuXHunt3R
23.02.2008 um 17:55 Uhr
Hallo bastla

Könntest du mir diese Zeile ein bisschen ausdeutschen?
01.
strDate = CStr(Mid(Date - intDays, 7, 4)) & CStr(Mid(Date - intDays, 4, 2)) & CStr(Mid(Date - intDays, 1, 2))
Begreif ich nicht ganz......
Bitte warten ..
Mitglied: bastla
23.02.2008 um 18:14 Uhr
Hallo TuXHunt3R!

Ist ein wenig schwer zu erklären, weil sie eigentlich so aussehen sollte:
01.
strDate = Mid(CStr(Date - intDays), 7, 4) & Mid(CStr(Date - intDays), 4, 2) & Mid(CStr(Date - intDays), 1, 2)
Oder noch besser so:
01.
dtAbDatum = Date - intDays ' ab welchem Datum (Heute - intDays) soll das Log ausgewertet werden - Ergebnis im Format "TT.MM.JJJJ" 
02.
strAbDatum = CStr(dtAbDatum) ' diese Datumsangabe in einen String umwandeln ... 
03.
'  ... und diesen zerlegen und neu zusammensetzen, damit das Datum in der Form "JJJJMMTT" zur Verfügung steht 
04.
strDate = Mid(strAbDatum, 7, 4) & Mid(strAbDatum, 4, 2) & Mid(strAbDatum, 1, 2)
Funktioniert haben sollte aber (wegen der impliziten Typkonversion durch VBS) auch die ursprüngliche Schreibweise - es waren so nur alle CStr() überflüssig.

Grüße
bastla
Bitte warten ..
Mitglied: TuXHunt3R
23.02.2008 um 18:26 Uhr
OK, danke. Melde mich eventuell noch mal...
Bitte warten ..
Mitglied: TuXHunt3R
23.02.2008 um 18:40 Uhr
Die Datumsangabe im WMI-Query muss also folgendermassen aussehen?
yyyyMMdd

Also, z.B. so:
20080223
Bitte warten ..
Mitglied: bastla
23.02.2008 um 19:22 Uhr
Hallo TuXHunt3R!

Das vollständige Datums-/Zeitformat sieht so aus (kannst Du durch ein
01.
WScript.Echo .TimeWritten
in der Schleife nachvollziehen):
01.
20080223190532.000000+060
Es genügt aber für die Abfrage der Datumsanteil (entspricht dann "Datum 00:00 Uhr").

Grüße
bastla
Bitte warten ..
Mitglied: bastla
23.02.2008 um 19:42 Uhr
... als Ergänzung:

Wenn Du tatsächlich die Anforderung "letzte 24 Stunden" exakt umsetzen willst, kannst Du es so versuchen:
01.
... 
02.
intStd = 24 
03.
 
04.
dtAb = DateAdd("h", -intStd, Now) 
05.
strAb = CStr(dtAb) 
06.
strDate = Mid(strAb, 7, 4) & Mid(strAb, 4, 2) & Mid(strAb, 1, 2) & _ 
07.
	Replace(Mid(strAb, 12), ":", "") & ".000000+060" 
08.
...
Grüße
bastla
Bitte warten ..
Mitglied: TuXHunt3R
29.04.2008, aktualisiert 18.10.2012
Hallo bastla

Habe es in PowerShell umgesetzt, siehe hier:
http://www.administrator.de/wissen/powershell-for-runaways-part-ii-8661 ...

Problem damit gelöst!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...