WMI query for events

H

HankC

This code snippet fails with 'Specified cast is not valid' when running
the query to get application warning events in the last 10 days...

What am I doing wrong?


HankC


Dim objWMIService As Object

objWMIService =
GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

Dim colEvents As Collection

strquery = "Select * from Win32_NTLogEvent Where Logfile =
'Application' and Type = 'Warning' and TimeWritten >=
'20050916143529.000000-300'"


'''the next line fails: Specified cast is not valid.
colEvents = objWMIService.ExecQuery(strquery, "WQL",
wbemFlagReturnImmediately + wbemFlagForwardOnly)

Dim objEvent As Object
For Each objEvent In colEvents
TextBox1.Text = TextBox1.Text & objEvent.Type & vbVrLf
Next
End If
 
K

Ken Tucker [MVP]

Hi,

Here is how I would do that.

Dim moReturn As Management.ManagementObjectCollection

Dim moSearch As Management.ManagementObjectSearcher

Dim mo As Management.ManagementObject

moSearch = New Management.ManagementObjectSearcher("Select * from
Win32_NTLogEvent Where " & _

"Logfile ='Application' and Type = 'Warning' and TimeWritten
='20050916143529.000000-300'")

moReturn = moSearch.Get

For Each mo In moReturn

Dim strOut As String

strOut = String.Format("Date {0} Message {1}", mo("TimeWritten"),
mo("Message"))

Trace.WriteLine(strOut)

Next



Ken

-------------------
 
H

HankC

Ken said:
Hi,

Here is how I would do that.

Dim moReturn As Management.ManagementObjectCollection

Dim moSearch As Management.ManagementObjectSearcher

Dim mo As Management.ManagementObject

moSearch = New Management.ManagementObjectSearcher("Select * from
Win32_NTLogEvent Where " & _

"Logfile ='Application' and Type = 'Warning' and TimeWritten

moReturn = moSearch.Get

For Each mo In moReturn

Dim strOut As String

strOut = String.Format("Date {0} Message {1}", mo("TimeWritten"),
mo("Message"))

Trace.WriteLine(strOut)

Next



Ken

Thanks, Ken. That did the trick...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top