連載
» 2016年04月01日 05時00分 公開

Tech TIPS:Windows 10でWindows Updateのログファイルをテキスト形式で出力させる

Windows 10ではWindows Updateのログ形式が変更され、簡単にメモ帳などで内容を確認できなくなった。だがPowerShellを使えば従来のようなテキスト形式に変換できる。

[打越浩幸,デジタルアドバンテージ]
Tech TIPS
Windows Server Insider


「Tech TIPS」のインデックス

連載目次

対象OS:Windows 10/Windows Server 2016



解説

 Windows Updateでトラブルが生じたとき、その原因究明のために、Windows Updateのサービスが出力するログファイルを確認することがよくある(TIPS「Microsoft Update/自動更新のエラー・ログを調査する」)。このログファイルは、デフォルトでは「%windir%\WindowsUpdate.log」に保存されている。

 だがWindows 10(およびWindows Server 2016)ではこのWindowsUpdate.logファイルは廃止され、中には何も記録されなくなっている。

C:\Windows>dir WindowsUpdate.log ……Windows 10上でWindows Updateのログファイルを確認してみる
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 9C74-EABD です

 C:\Windows のディレクトリ

2016/03/31  13:07       275 WindowsUpdate.log ……ファイルサイズがとても小さい
       1 個のファイル         275 バイト
       0 個のディレクトリ  42,036,269,056 バイトの空き領域

C:\Windows>type WindowsUpdate.log ……内容を表示させてみる
Windows Update logs are now generated using ETW (Event Tracing for Windows).
Please run the Get-WindowsUpdateLog PowerShell command to convert ETW traces into a readable WindowsUpdate.log. ……「Windows UpdateのログはETWに移行したので、内容を確認したければGet-WindowsUpdateLogで変換せよ」とのこと

For more information, please visit http://go.microsoft.com/fwlink/?LinkId=518345
C:\Windows>



 「Windows Updateログは現在ではETW(Event Tracing for Windows)を使って生成されている」というメッセージから分かるように、Windows 10ではWindows Updateのログ記録の仕様が変更され、Windows OSの「イベントトレース」ログとして記録されるようになった(注:「イベントログ」とは別)。

 イベントトレースログ(ETW)とは、システム内で動作するサービスやアプリケーションなどが生成する各種の動作ログ情報をリアルタイムに記録、保存する仕組みである。主にデバイスドライバーやシステムサービス、アプリケーションなどが、デバッグや動作確認、パフォーマンスチューニングなどのために出力することが多い。ETWのログは「パフォーマンスモニター」や「tracerpt」などのツールで確認できる。

 実際のWindows UpdateのETWログは「%windir%\Logs\WindowsUpdate」フォルダに「〜.etl」ファイルとして保存されている。

C:\>cd C:\Windows\Logs\WindowsUpdate

C:\Windows\Logs\WindowsUpdate>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 9C74-EABD です

 C:\Windows\Logs\WindowsUpdate のディレクトリ

2016/03/31  13:32    <DIR>  .
2016/03/31  13:32    <DIR>  ..
2016/03/17  13:25    49,152 WindowsUpdate.20160317.130144.408.10.etl ……ETW形式のログファイル
2016/03/17  13:05   139,264 WindowsUpdate.20160317.130144.408.3.etl ……複数のETWファイルに分かれて記録されているが、これら全ての内容が結合されてテキスト形式のログファイルに変換される
……(中略)……
2016/03/31  12:08   139,264 WindowsUpdate.20160331.120142.442.3.etl
2016/03/31  12:29    53,248 WindowsUpdate.20160331.120142.442.4.etl
2016/03/31  13:17     8,192 WindowsUpdate.20160331.130702.149.1.etl
      20 個のファイル           2,035,712 バイト
       2 個のディレクトリ  42,037,628,928 バイトの空き領域

C:\Windows\Logs\WindowsUpdate>



 .etlファイルはETWのトレースログを保存したバイナリデータファイルである。Windows 10でWindows UpdateのETWログの内容を確認するにはいくつか方法があるが、従来のテキスト形式のWindows Updateログファイルに変換して表示させるのが一番簡単である。本TIPSではその方法を紹介する。

 ただしこの方法では一度テキストに変換してからでないと内容を確認することができず、リアルタイムの監視にはあまり向いていない。リアルタイムにチェックする方法については今後、別TIPSで紹介する。

操作方法

 ETWログに記録されているWindows Update関連のログをテキストファイルに変換するには、PowerShellの「Get-WindowsUpdateLog」コマンドレットを利用する。

 まず[スタート]メニューから[すべてのアプリ]−[Windows PowerShell]−[PowerShell]を開き、「Get-WindowsUpdateLog」と入力して実行する。

 すると現在システム中に保存されているWindows UpdateのETWのログファイルが解析され、結果がテキストファイルとしてデスクトップに出力される。

PowerShellでETWのログファイルを変換する PowerShellでETWのログファイルを変換する
PowerShellのGet-WindowsUpdateLogコマンドレットを使うと、Windows Updateのログを記録している.etlファイルの内容がテキストファイルとして出力される。
  (1)Get-WindowsUpdateLogを実行する。
  (2)デフォルトではデスクトップ上に出力される。
  (3)これらの.etlファイルが全部まとめられ、テキストファイル化される。

 デフォルトでは、デスクトップ上に「WindowsUpdate.log」というファイルとして出力される。

生成されたWindows Updateのテキストログファイル 生成されたWindows Updateのテキストログファイル
ETWのWindows Update関連のログがテキストに変換されるので、メモ帳などで確認できる。ただし現時点では、日本語文字列の部分が「?????」などに変換されるという不具合も見受けられる。その場合は、不明な文字列の前後にある「KB3144756」などの文字列をキーにしてインターネットで検索するとよい。

 テキストファイルとして出力されているので、そのままダブルクリックするとメモ帳などで開くことができる。例えば「error」という文字列を検索すると、Windows Updateで発生したトラブルの解決の助けになるだろう。

 なおこの方法では、いちいちファイルを変換しないといけないので、従来のtailコマンドなどを使ったリアルタイム監視(TIPS「tailコマンドでログファイルをリアルタイムに監視する」参照)はできない。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

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

メールマガジン登録

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