WMI を使用して Windows イベント ログを監視し、15 分ごとに最新のログ イベントを取得したいと考えています。WQL を使用してクエリを実行できますが、order by などのキーワードはありません。この問題を回避する方法はありますか?
1783 次
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 に答える