0

我运行命令wevtutil qe Application /rd:false /f:text并得到如下所示的输出。一段时间后,可能会生成新的事件日志,我只想阅读这些新的事件日志,即 Event[2]、Event[3]、Event[4] 等。

如何使用wevtutil工具仅生成这些新事件日志?

事件[0]:

  • 日志名称:应用程序
  • 来源:Microsoft-Windows-LoadPerf
  • 日期:2016-04-21T23:15:16.832
  • 事件 ID:1000
  • 任务:不适用
  • 级别:信息
  • 操作码:信息
  • 关键字:不适用
  • 用户:S-1-5-18
  • 用户名:NT AUTHORITY\SYSTEM
  • 电脑:WIN-IONOGQTF9O5
  • 说明:WmiApRpl (WmiApRpl) 服务的性能计数器已成功加载。数据部分中的记录数据包含分配给该服务的新索引值。

事件[1]:

  • 日志名称:应用程序
  • 来源:Microsoft-Windows-LoadPerf
  • 日期:日期:2016-04-21T23:15:13.097
  • 事件编号:3011
  • 任务:不适用
  • 级别:信息
  • 操作码:信息
  • 关键字:不适用
  • 用户:S-1-5-18
  • 用户名:NT AUTHORITY\SYSTEM
  • 电脑:WIN-IONOGQTF9O5
  • 说明:卸载服务 WmiApRpl (WmiApRpl) 的性能计数器字符串失败。数据部分的第一个 DWORD 包含错误代码。
4

2 回答 2

0

/rd:false 将首先读取最旧的,因此如果您正在寻找最新的,它可能不是最好的查询。

我不知道事件日志的已读/未读标签,您可以创建一个自定义对象并添加一个,但这可能不是解决它的最佳方法。

您还可以执行以下操作

$lastRanDate = "2018-11-30T17:20:55" ##import from a txt file
$date = Get-date -UFormat %Y-%m-%dT%H:%M:%S
##Get's current date and formats as following example 2018-12-01T17:17:45
$difference = New-TimeSpan -Start $lastRanDate -End $date
##Calculate difference between start time and end time
$difference = $difference.TotalMilliseconds
wevtutil epl Application "C:\Users\Pipastrilo\Desktop\appTest.evtx" /q:"*[System[TimeCreated[timediff(@SystemTime) <= $difference]]]"
## exportLog logName Path query(TimeCreated between current and HowManayMillisecondsAgo


$lastRanDate = $date
##export $lastRunDate for future searches
于 2018-12-01T17:18:09.740 回答
0

weventil 不是 PowerShell,所以我被误导了。但是,您可以这样做:

Get-EventLog -LogName Application -Newest -After ( Get-Date ).AddDays(-1)
于 2016-07-15T17:48:20.040 回答