【问题标题】:use wmi to get newest Windows log events使用 wmi 获取最新的 Windows 日志事件
【发布时间】:2011-01-08 12:12:09
【问题描述】:

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

【问题讨论】:

    标签: wmi wmi-query


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2013-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-07
      相关资源
      最近更新 更多