2017-02-13 63 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) 
) 

上記のようなクエリの最初のイベントと最後のイベントはどのようにして見つけられますか? EventLogQueryオブジェクト上ReverseDirectionプロパティが$trueに設定されていない限りおかげ

答えて

0

$readerは、デフォルトでは、最新のイベントに古いものから読んでます、:

# 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 
関連する問題