トラブルシューター泣かせのイベントログメッセージ(その2)──「システム時刻の変更」に脆弱性あり?山市良のうぃんどうず日記(85)(2/3 ページ)

» 2017年03月01日 05時00分 公開
[山市良テクニカルライター]

他の標準的なコマンド/コマンドレットで試してみると……

 WindowsにはWindows PowerShellのGet-EventLogコマンドレット以外にも、コマンドラインからイベントログを検索できるツールが標準で幾つか用意されています。「wevtutil」コマンド、「wmic」コマンド、そしてWindows PowerShell 2.0以降の「Get-WinEvent」コマンドレットです。

 先ほどのGet-EventLogコマンドレットのフィルター指定と同様のコマンドラインは、それぞれ以下のようになります。実行結果は、イベントビューアーの表示と一貫性のある、正しいメッセージを表示しました(画面3)。どうやら、Get-EventLogコマンドレットの不具合のようです。


wevtutil qe System /f:text /q:"*[System[Provider[@Name='Microsoft-Windows-Kernel-General'] and (EventID=1)]]"
▲wevtutilコマンドの場合
wmic ntevent where "(LogFile='system' and SourceName='Microsoft-Windows-Kernel-General' and EventCode='1')"
▲wmicコマンドの場合
Get-WinEvent -LogName System -FilterXPath "*[System[Provider[@Name='Microsoft-Windows-Kernel-General'] and (EventID=1)]]"
▲Get-WinEventコマンドレットの場合
画面3 画面3 上から「wevtutil」コマンド、「wmic」コマンド、「Get-WinEvent」コマンドレットの実行結果。結局、どれも問題なし

 ちなみに、wevtutilコマンドとGet-WinEventコマンドレットで共通のフィルターを指定していますが、複雑すぎて手に負えないと思っていませんか。実は、この「XPathフィルター」は、イベントビューアーでフィルターを設定すると、その設定画面(現在のログをフィルター)にある「XML」タブからコピーすることができます(画面4)。覚えておくと、便利ですよ。

画面4 画面4 イベントビューアーでログにフィルターを設定すると、そのフィルターに対応するXPath形式のクエリをコピーできる

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。