Jump to content

Wmi Abfrage mit Like %....%


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Ich hab ein Problem mit folgendem Codeschnipsel:

 

Die like-funktion geht so nicht, gebe ich einen Wert ein, der ohne Platzhalter % ist,

also eine genaue Zeit mit Datum, dann funktioniert es, aber sobald ich es mit like versuche bekomme ich die Fehlermeldung:

Zeile 29

Zeichen 2

Fehler 0x80041017

Code 80041017

Quelle: (null)

 

Zeile 29 wäre die FOR Each Zeile, als wäre das Array kaputt oder ähnlich.

Hab schon gegoogelt und versucht wie ein verrückter, aber jetzt wende ich mich

kapitulierend ans Forum !

 

 

	Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where (EventType=1 OR EventType=2 OR EventType=5) AND TimeWritten like '%" & ownDate &"%'")


For Each objDisk in colDisks

'Hier wird das ganze dann in einer Datei gespeichert

Next

Link zu diesem Kommentar

Hier nochmal der ganze Code bei Interesse, oder zum testen:

 

''''' Hier zu scannende Pcs eintragen
arrayComputer = Array(".")

		Dim objFileSystem, objOutputFile
		Dim strOutputFile
		' generate a filename base on the script name
		strOutputFile = "./" & Split(WScript.ScriptName, ".")(0) & ".html"
		Set objFileSystem = CreateObject("Scripting.fileSystemObject")
		Set objOutputFile = objFileSystem.CreateTextFile(strOutputFile, TRUE)

		objOutputFile.WriteLine("<html><body>")



			ownYear= DatePart ("yyyy", Now)
			ownMonth=DatePart("m", Now)
			ownday= DatePart("d", Now)
			ownDate=right("00" & ownYear, 4) &    right("00" & ownMonth, 2) & right("00" & ownDay, 2)

For Each strComputer In arrayComputer

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery _
    ("Select * from Win32_NTLogEvent Where (EventType=1 OR EventType=2 OR EventType=5) AND TimeWritten like '%" & ownDate & "%'")

objOutputFile.WriteLine(strComputer & "<br><table border=1>")
For Each objDisk in colDisks

       objOutputFile.WriteLine("<tr><td><img src='" & objDisk.Type & ".jpg'>" & "</td><td>" & objDisk.CategoryString & "</td><td>" & objDisk.EventCode & " </td><td> " & objDisk.EventIdentifier & " </td><td> " & objDisk.Logfile & " </td><td> " & objDisk.Message & " </td><td> " & objDisk.RecordNumber & " </td><td> " & objDisk.SourceName & " </td><td> " & objDisk.TimeWritten & " </td><td> " & objDisk.User & "</td></tr>")

       Next
objOutputFile.WriteLine("</table>")	


		objOutputFile.WriteLine("</body></html>")

 		objOutputFile.Close

 		Set objFileSystem = Nothing

		WScript.Quit(0)

Next

Link zu diesem Kommentar

oder versuche doch das "like" anders zu formulieren, so ähnlich wie in der Doku gefunden:

 

 

 
Const CONVERT_TO_LOCAL_TIME = True
Set dtmStartDate = CreateObject("WbemScripting.SWbemDateTime")
Set dtmEndDate = CreateObject("WbemScripting.SWbemDateTime")
DateToCheck = CDate("1/18/2005")
dtmStartDate.SetVarDate DateToCheck, CONVERT_TO_LOCAL_TIME
dtmEndDate.SetVarDate DateToCheck + 1, CONVERT_TO_LOCAL_TIME



''''' Hier zu scannende Pcs eintragen
arrayComputer = Array(".")

		Dim objFileSystem, objOutputFile
		Dim strOutputFile
		' generate a filename base on the script name
		strOutputFile = "./" & Split(WScript.ScriptName, ".")(0) & ".html"
		Set objFileSystem = CreateObject("Scripting.fileSystemObject")
		Set objOutputFile = objFileSystem.CreateTextFile(strOutputFile, TRUE)

		objOutputFile.WriteLine("<html><body>")



			ownYear= DatePart ("yyyy", Now)
			ownMonth=DatePart("m", Now)
			ownday= DatePart("d", Now)
	'		ownDate=right("00" & ownYear, 4) &    right("00" & ownMonth, 2) & right("00" & ownDay, 2)
			ownDate=("%2%")

For Each strComputer In arrayComputer

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery _
    ("Select * from Win32_NTLogEvent Where (EventType=1 OR EventType=2 OR EventType=5) AND TimeWritten >= '" & dtmStartDate & "' and TimeWritten < '" & dtmEndDate & "'") 


objOutputFile.WriteLine(strComputer & "<br><table border=1>")
For Each objDisk in colDisks

       objOutputFile.WriteLine("<tr><td><img src='" & objDisk.Type & ".jpg'>" & "</td><td>" & objDisk.CategoryString & "</td><td>" & objDisk.EventCode & " </td><td> " & objDisk.EventIdentifier & " </td><td> " & objDisk.Logfile & " </td><td> " & objDisk.Message & " </td><td> " & objDisk.RecordNumber & " </td><td> " & objDisk.SourceName & " </td><td> " & objDisk.TimeWritten & " </td><td> " & objDisk.User & "</td></tr>")

       Next
objOutputFile.WriteLine("</table>")	


		objOutputFile.WriteLine("</body></html>")

 		objOutputFile.Close

 		Set objFileSystem = Nothing

		WScript.Quit(0)

Next

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...