【问题标题】:Query Eventlog Records Between Dates查询日期之间的事件日志记录
【发布时间】:2015-01-05 11:24:15
【问题描述】:

我正在编写一个 VBScript,它尝试查询 WMI 系统日志以了解当月的启动和关闭情况,不幸的是,我创建的查询遇到了自动化错误。

我有一个函数会为月初和月底动态创建一个 UTC(至少我认为它确实如此并且看起来正确),然后将其添加到查询字符串中,如下所示:

Select * from Win32_NTLogEvent
Where Logfile = 'System' and
  (EventCode = '12' or EventCode = '13') AND
  (TimeWritten is between '2015101000000.000000-000' and '2015131235959.000000-000')

我尝试用单引号代替双引号(使用CHR(34),因为我不知道更好)。

我希望有人能够以我的方式指出错误并解释为什么这个查询不起作用。

【问题讨论】:

  • 您也可以在查询中使用普通的日期格式(例如10/10/2015),这更容易,然后您可以使用TimeWritten >= Date - 1 AND TimeWritten <= Date 之类的日期公式(以获取昨天的事件)。你可以试试看我的意思。

标签: vbscript wmi wql


【解决方案1】:

WQL 没有between 运算符,并且您的两个日期都无效(您有yyyy<i><b>M</b></i>ddHHmmss.ffffff±zzz,而您应该有yyyy<i><b>MM</b></i>ddHHmmss.ffffff±zzz)。

改变

TimeWritten is between '2015101000000.000000-000' and '2015131235959.000000-000'

进入

TimeWritten >= '20150101000000.000000-000' and TimeWritten <= '20150131235959.000000-000'

【讨论】:

  • 一百万真的谢谢,我不仅错过了那个丢失的单个数字,而且我还了解到 WQL 没有中间运算符。我已更正并成功重新运行我的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-26
  • 2014-02-11
  • 1970-01-01
  • 1970-01-01
  • 2017-05-02
  • 1970-01-01
相关资源
最近更新 更多