/ / użyj wmi, aby uzyskać najnowsze zdarzenia dziennika Windows - wmi, wmi-query

użyj wmi aby uzyskać najnowsze zdarzenia dziennika Windows - wmi, wmi-query

Chcę używać WMI do monitorowania zdarzenia Windowszaloguj się i otrzymuj najnowsze zdarzenia dziennika co 15 minut. Chociaż mogę użyć WQL do wykonania zapytania, nie ma słów kluczowych, takich jak sortuj według. Jakieś pomysły na obejście tego problemu?

Odpowiedzi:

1 dla odpowiedzi № 1

możesz użyć zestawu danych. Poniżej zrobiono za pomocą vbscript i tylko w polach ComputerName, EventCode i Message. Dodaj pozostałe pola według potrzeb

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 & "rootcimv2")

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