Wevtutil只输出新的事件日志

时间:2016-07-15 15:06:36

标签: powershell events event-log readeventlog wevtutil

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

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

事件[0]:

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

事件[1]:

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

2 个答案:

答案 0 :(得分:0)

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

Get-EventLog -LogName Application -Newest -After ( Get-Date ).AddDays(-1)

答案 1 :(得分: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