我正在尝试从WMI Win32_NTLogEvent类中读取数据,但我只想读取TimeWritten属于日期范围的实例。
我正在使用Python的WMI模块,它允许纯WMI查询(1)或参数化方法(2):
c.query("Select SourceName, Message from Win32_NTLogEvent where EventType =1, Logfile = \"Application\"")
c.Win32_NTLogEvent(EventType =1, Logfile = "Application")
问题是,我似乎无法接受我的日期参数。我已经尝试了几种日期格式,包括相当模糊的WMI style,我唯一的成功就是使用上面的第二种方法和=运算符,这实际上并没有帮助:
c.Win32_NTLogEvent(EventType =1, Logfile = "Application", TimeWritten = "20110421013749.000000-000")
我知道我可以在我的Python代码中过滤结果集,但我相当确定这可以在查询中完成。我想我只是错过了一些东西。有人有建议吗?
感谢。
答案 0 :(得分:1)
你的WQL句子错了
替换此代码
c.query("Select SourceName, Message from Win32_NTLogEvent where EventType =1, Logfile = \"Application\"")
这一个
c.query("Select SourceName, Message from Win32_NTLogEvent where EventType =1 AND Logfile = \"Application\" AND TimeWritten<=\"20110421013749.000000-000\" ")
注意:我对python(但i know a couple of things about the WMI)了解不多,所以也许你必须以另一种方式逃避特殊字符。