在PowerShell中对事件日志排序
问题描述:
我正在使用一个命令来显示远程计算机的事件日志并通过eventId对其进行过滤。我试图做的是让它只显示最近的X事件。像1,5,10,但我指定的很多。我说,使用-newest 5
,但是当我试图通过EVENTID例如过滤后,他们获得最新的事件,它不会让我这样做在PowerShell中对事件日志排序
Get-EventLog system -computername c78572 | select eventid,machinename,timewritten | where {$_.eventid -eq 6009} | ft -autosize
基本上我想显示远程系统的特定事件ID,并只显示最近的5个。
答
如果您知道事件ID的实例ID,那么你可以这样做:
Get-EventLog system -computername c78572 -InstanceId 2147489657 -Newest 5
这是长版:
Get-EventLog system -computername c78572 |
where {$_.eventid -eq 6009} |
select eventid,machinename,timewritten -First 5
下面是一个使用Get-WinEvent
cmdlet的另一种方式(目标应该是Vista的和iirc),它使用eventid:
Get-WinEvent -FilterHashtable @{LogName='system';Id=6009} -MaxEvents 5
是EventID 6009具有相同的InstanceId每个单一时间?那么你如何获得InstanceId? – Aaron
管一个6009事件fl和检查其InstanceId属性 –
我也认为我会坚持Get-EvenLog,因为我需要获取Windows XP设备和更高的事件。 – Aaron