Windowsにはイベントログと呼ばれる機能がある。これは、システムやアプリケーションなどが、発生したイベントを記録し、後でのメンテナンスなどに利用するものだ。管理ツールにあるイベントビューアーでも簡単には見ることができる。今回は、このあたりを解説する。
目的としては、Windows内で発生した複数のプログラムが関わる特定の作業の経過などを取り出し、その経過を追えるようにする。筆者は、Windowsの機能アップデートに関しての情報を収集したいと思って調べ始めた。
そもそもWindowsのイベントログとは
Windowsのイベントログは、現在では、EVTX形式のファイルに記録され、
C:\Windows\System32\winevt\Logs
というフォルダー以下に置かれている。イベントログ機能自体はWindows NTの頃からあり、当初はEVT形式でログを記録していた。その後Windows Vistaで形式が拡張されEVTX形式となった。
なお、Windowsにはもう1つ、イベントトレースログ(Event Trace Log。ETL)と呼ばれるものがある。イベントログがどちらかというと、作業をした後での記録であるのに対して、ETLは起動中のプログラムの経過を記録する場合に使われることが多く情報量も多い。
しかし一般的には、ログインしたとか、インストールしたとかのイベントの記録だけで十分なことが多く、イベントログを使った管理が行われるのが普通。これに対してETLは、たとえば、デバイスドライバーの挙動やWindows Updateのアップデート作業の経過などを記録するために使われている。このため、データ量が多く、日常的な記録には向いていない。なお、ETLは、
C:\Windows\Logs
以下に保存されていることが多い(これ以外の場所で見つかることもある)。
EVTX/ETLともにファイル形式自体は未公開だが、その変換や表示を可能にする手段が複数提供されており、これらを使うことで、Windowsの管理ができるが、それぞれ一長一短ある。
イベントビューアーを起動するとわかるが、Windowsのイベントログは多数ある。しかし、記録形式としてはEVTXのみなので、基本的にどのログも情報の形式としては同じである。ただ、後述するが、イベントビューアーで見える項目は、従来のEVT形式だったときのものと同じで、実際に記録されている情報とはちょっと違う。
イベントビューアーは、EVTX形式のファイルを解釈して人間が見やすい表示に変換している。たとえば、イベントビューアーでログをどれか開き、その中のレコードを選択すると、下の「全般」タブにメッセージが表示されているが、ログ自体には、こうしたテキスト情報は含まれていない。
これは、ログに記録された情報をイベントビューアーが解釈し、数値で表現されたログ内容をテキスト表現しているだけである。具体的な記録内容は不明だが、イベントビューアーの下のペインで「詳細」タブを開き、「XMLで表示」を選ぶと、記録されている情報に近いものが表示される。
ここに表示される情報は、おそらくEVTX形式の中に記録されているものに近いと考えられる。これを見ると、たとえば上のログのリストで「ソース」として表示されているのはXMLデータの中の“Provider Name”の一部を切り出したものだし、「日付と時刻」は、“TimeCreated”をローカル時間(XMLではGMTが指定されている)に変換したものである(このあたりあは次回、PowerShellでログを扱うときに別途詳しく解説する)。
また、ソースやイベントの種類により、後半の“<EventData>”の部分は異なっており、レコードは固定長ではなく、さまざまなデータを保持できるようになっているようだ。
ただし、EVTXは、XMLで表現できるが、ファイルの中を見ると、XML形式ではなくバイナリ形式になっている。おそらくは、ファイルスペースを節約するために圧縮などがなされているのだと思われる。とはいえマイクロソフト標準の16bit文字コードもあるようなので、XMLのタグをバイナリ表現したような形式ではないかと思われる。
この連載の記事
-
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 - この連載の一覧へ