2017-02-13 36 views
0

我正在嘗試在脫機evtx文件中查找第一個和最後一個事件時間戳。我試圖在PowerShell中使用EventLogReader.Seek方法(SeekOrigin,Int64)。我知道如何根據事件ID找到事件如下。識別事件日誌中的第一個和最後一個事件.net或powershell

$reader = [Diagnostics.Eventing.Reader.EventLogReader]::new(
    [Diagnostics.Eventing.Reader.EventLogQuery]::new($eventLogPath, 
     [Diagnostics.Eventing.Reader.PathType]::FilePath, $query) 
) 

如何在類似於上面的查詢中找到第一個和最後一個事件?由於

回答

0

$reader會從最早到系統默認的最新情況看,除非EventLogQuery對象的ReverseDirection屬性設置爲$true

# create default reader 
$queryObject = [Diagnostics.Eventing.Reader.EventLogQuery]::new($eventLogPath, 'FilePath', $query) 
$forwardReader = [Diagnostics.Eventing.Reader.EventLogReader]::new($queryObject) 

# read oldest event 
$oldestEvent = $forwardReader.ReadEvent() 

# Now change the query direction and create a new reader 
$queryObject.ReverseDirection = $true 
$reverseReader = [Diagnostics.Eventing.Reader.EventLogReader]::new($queryObject) 

# read the newest event 
$newestEvent = $forwardReader.ReadEvent() 

有沒有必要做任何的上述手動不過,你可以使用the Get-WinEvent cmdlet代替:

$oldestEvent = Get-WinEvent -Path $eventLogPath -FilterXPath $query -MaxEvents 1 -Oldest 
$newestEvent = Get-WinEvent -Path $eventLogPath -FilterXPath $query -MaxEvents 1 
相關問題