Can';t查询Windows事件日志';转发事件';有日期
我们正在尝试创建PowerShell函数,以查询Windows事件日志中两个日期之间发生的事件。 查询自定义日志或标准日志时,以下代码可以正常工作:Can';t查询Windows事件日志';转发事件';有日期,windows,powershell,events,logging,event-log,Windows,Powershell,Events,Logging,Event Log,我们正在尝试创建PowerShell函数,以查询Windows事件日志中两个日期之间发生的事件。 查询自定义日志或标准日志时,以下代码可以正常工作: $FilterXML = @" <QueryList> <Query Id="0" Path='$LogName'> <Select Path='$LogName'> *[System[TimeCreated[@SystemTime>='2017-04
$FilterXML = @"
<QueryList>
<Query Id="0" Path='$LogName'>
<Select Path='$LogName'>
*[System[TimeCreated[@SystemTime>='2017-04-17T09:48:24.000Z' and
@SystemTime<='2017-04-19T09:50:24.999Z']]]
</Select>
</Query>
</QueryList>
"@
Get-WinEvent -FilterXml $FilterXML
在创建事件的源计算机上运行相同的查询时,它可以很好地处理日期。在收集器服务器上,仅选择过去7天或24小时内的事件时,也可以正常工作。因此,我想它与事件的转发和其中的DateTime
对象有关。我们检查了两台服务器上的区域设置,它们的日期格式是相同的荷兰语(比利时)
无法使用日期的事件示例:
Message : johofman - Script ended
Id : 199
Version :
Qualifiers : 0
Level : 4
Task : 1
Opcode :
Keywords : 36028797018963968
RecordId : 768
ProviderName : My script name
ProviderId :
LogName : My log name
ProcessId :
ThreadId :
MachineName : SERVER.domain.net
UserId :
TimeCreated : 19/04/2017 16:02:56
ActivityId :
RelatedActivityId :
ContainerLog : c:\windows\system32\winevt\logs\forwardedevents.evtx
MatchedQueryIds : {}
Bookmark : System.Diagnostics.Eventing.Reader.EventBookmark
LevelDisplayName : Information
OpcodeDisplayName : Info
TaskDisplayName :
KeywordsDisplayNames : {Classic}
Properties : {System.Diagnostics.Eventing.Reader.EventProperty}
是否存在这样一个原因,即它适用于所有事件日志,但不适用于转发的事件
已按所述配置事件日志记录
谢谢您的帮助。试试
-filterHashTable
?例如:
$filter = @{
Path = "$env:SystemRoot\System32\Winevt\Logs\ForwardedEvents.evtx"
StartTime = get-date '2017-04-17T09:48:24.000Z'
EndTime = get-date '2017-04-19T09:50:24.999Z'
}
然后
Get-WinEvent-LogName ForwardedEvents?提供了正确的结果,在
-FilterXML
中使用时也是如此,但在添加日期时却没有。恐怕是同一条消息,没有找到符合指定选择条件的事件。真奇怪。因为不带日期的查询给我提供了事件,我可以在事件中看到正确的日期…你是否尝试过使用日期,即从前一天到第二天?是的,我尝试过的第一件事是。当更改ForwardedEvents的路径时,在远程源服务器上使用相同的日期,但在收集器服务器上不使用相同的日期,它可以正常工作。当24小时前尝试时,这也有效,只是在日期之间无效。更多信息
$filter = @{
Path = "$env:SystemRoot\System32\Winevt\Logs\ForwardedEvents.evtx"
StartTime = get-date '2017-04-17T09:48:24.000Z'
EndTime = get-date '2017-04-19T09:50:24.999Z'
}
$events = Get-WinEvent -FilterHashtable $filter