3

我想使用 WMI 来监视 Windows 事件日志并每 15 分钟获取一次最新的日志事件。虽然我可以使用 WQL 进行查询,但它没有 order by 等关键字。任何想法如何解决这个问题?

4

1 回答 1

1

您可以使用数据集。下面是使用 vbscript 完成的,并且仅在 ComputerName、EventCode 和 Message 字段上完成。根据需要添加其他字段

Const adVarChar = 200
Const MaxCharacters = 1024
Const adFldIsNullable = 32
Set DataList = CreateObject("ADOR.Recordset")
DataList.Fields.Append "ComputerName", adVarChar, MaxCharacters,adFldIsNullable
DataList.Fields.Append "EventCode", adVarChar, MaxCharacters,adFldIsNullable
DataList.Fields.Append "Message",adVarChar,MaxCharacters,adFldIsNullable
DataList.Open
strComputer = "."
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colLoggedEvents = objWMIService.ExecQuery("Select * from Win32_NTLogEvent Where Logfile = 'Application'")
For Each evt in colLoggedEvents
 DataList.AddNew
 DataList("ComputerName") = evt.ComputerName
 DataList("EventCode") = evt.EventCode
 DataList("Message") = evt.Message
 DataList.Update
Next
'sort by eventcode
DataList..Sort = "EventCode DESC"
DataList.MoveFirst
Do Until DataList.EOF
 Wscript.Echo DataList.Fields.Item("ComputerName") & vbTab & DataList.Fields.Item("EventCode") & vbTab & DataList.Fields.Item("Message")
DataList.MoveNext
Loop
于 2010-01-23T08:04:22.043 回答