2013-11-21 60 views
0

我正在使用一个命令来显示远程计算机的事件日志并通过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个。

回答

2

如果您知道事件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 
+0

是EventID 6009具有相同的InstanceId每个单一时间?那么你如何获得InstanceId? – Aaron

+0

管一个6009事件fl和检查其InstanceId属性 –

+0

我也认为我会坚持Get-EvenLog,因为我需要获取Windows XP设备和更高的事件。 – Aaron