knutsen42
Goto Top

VBS bleibt nach Abfrage EventLog in Schleife hängen

Moin.

Gleich vorweg, ich bin ein VBS-Newbie. ;) Ich mache gerade meine ersten Gehversuche, indem ich probiere, bestimmte Einträge aus dem Ereignislog eines anderen Rechners in eine SQL-Datenbank zu klöppeln.

Leider bleibt das Script aber am Ende der ForEach-Schleife hängen. Er trägt den letzten Eintrag ein, er kommt (scheinbar) ans Ende der Schleife und dann.... Stille. Das Test-Yo wird nicht ausgegeben und das Script muss ich aus dem TaskManager killen.

Vielleicht weiß jemand von Euch Rat? Vermutlich ist es nur was ganz Simples...


'*Public Function DBOpen(db_server, db_port, db_user, db_pass, db_name)'* Set conn=CreateObject("ADODB.Connection") strConnectString = "DRIVER={MySQL ODBC 3.51 Driver};" _ & "SERVER=" & db_server & ";" _ & " DATABASE=" & db_name & ";" _ & "UID=" & db_user & ";PWD=" & db_pass & "; OPTION=3" conn.Open strConnectString DBOpen = connEnd Function'#####################################################################Dim objWMIServiceconn = DBOpen ("localhost", 3306, "USER", "PASS", "data")Set rs = CreateObject("ADODB.recordset")rs.Open "SELECT run FROM runs ORDER BY id DESC LIMIT 0,1", connWhile Not (rs.EOF) schranke = rs.Fields("run").Value rs.MoveNextWendstrComputer = "NAME"Set dateTime = CreateObject("WbemScripting.SWbemDateTime") Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")Set colItemsErrors = objWMIService.ExecQuery( "SELECT * FROM Win32_NTLogEvent Where ((Type = 'Fehler' OR Type = 'Warnung' OR Type = 'Warning' OR Type = 'Error') AND TimeGenerated > '"&schranke&"')",,48)For Each item in colItemsErrors dateTime.Value = item.TimeGenerated mysqlStamp = dateTime.Year&dateTime.Month&dateTime.Day&dateTime.Hours&dateTime.Minutes&dateTime.Seconds if (not isnull(item.Message) ) then message = replace(item.Message, "'", "´") message = replace(message, "\", "/") end if sql = "INSERT INTO eventlogs (source, type, date, evlogMessage, evlogID, evlogSource) VALUES ( '"&strComputer&"', '"&item.Type&"', '"&mysqlStamp&"', '"&message&"', '"&item.EventIdentifier&"', '"&item.SourceName&"');" Set rs = CreateObject("ADODB.recordset") rs.Open sql, conn NextWScript.Echo "Yo"Set rs = CreateObject("ADODB.recordset")rs.Open "INSERT INTO runs (run) VALUES ('"&dateTime.Value&"');", connrs.Closeconn.CloseWSCRIPT.QUIT(0)

Content-Key: 50869

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

Printed on: April 23, 2024 at 06:04 o'clock