Windows 11/10でWindows Updateログを見つけて読む方法

Windows Updateは、Windows 11/10で診断ログを生成し、.etlファイル形式で保存するためにEvent Tracing for Windows (ETW)を使用します。これは、ディスク領域の使用量を削減し、パフォーマンスを向上させるために行われます。

この方法の1つの問題は、Windows Updateログをすぐに読むことができないことです。これらのログが保存されている形式である.etlファイルをデコードする必要があります。

Windows 11/10でWindows Updateログを読む

Windows 11/10でWindows Updateログを読むには、Microsoftは次の方法を提案しています。

  1. Windowsシンボルパッケージをダウンロードし、ここで説明されている方法を使用してインストールします。これらのシンボルをC:\symbolsにインストールします。
  2. Tracefmt.exeツールを、こちらの手順に従ってダウンロードします。Tracefmt (Tracefmt.exe)は、イベントトレースログファイル(.etl)またはリアルタイムトレースセッションからトレースメッセージをフォーマットして表示するコマンドラインツールです。Tracefmtは、メッセージをコマンドプロンプトウィンドウに表示したり、テキストファイルに保存したりできます。

管理者権限でコマンドプロンプトを開き、%systemdrive%\WULogsという名前の一時フォルダを作成します。次に、Tracefmt.exeをこのディレクトリにコピーします。

次に、次のコマンドを順番に実行します。

cd /d %systemdrive%\WULogs
copy %windir%\Logs\WindowsUpdate\* %systemdrive%\WULogs\
tracefmt.exe -o windowsupate.log <each windows update log delimited by space> -r c:\Symbols

この方法は面倒に見えますが、MicrosoftはWindows 10の最終バージョンで改善することを約束しています。詳細については、KB3036646を参照してください。

更新:Windows 11/10では改善されました。

PowerShellを使用してWindows Updateログを読む

WindowsUpdate.logは引き続きC:\Windowsにありますが、C:\Windows\WindowsUpdate.logファイルを開くと、次の情報のみが表示されます。

Windows Updateログは、ETW (Event Tracing for Windows)を使用して生成されるようになりました。Get-WindowsUpdateLog PowerShellコマンドを実行して、ETWトレースを読みやすいWindowsUpdate.logに変換してください。

Windows 10でWindowsUpdate.logを読むには、Windows PowerShellコマンドレットを使用して、通常表示される方法でWindowsUpdate.logを再作成する必要があります。

PowerShellウィンドウを開き、Get-WindowsUpdateLogと入力してEnterキーを押します。

ボーナス情報

Windows Updateログファイルのフォーマットが改善されました

MicrosoftがWindows 10をリリースしたとき、Windows Updateログファイルの日付ログファイルをプレーンテキストからバイナリファイル形式に置き換えました。Windows Updateログファイルは、通常、開発者やIT専門家がアプリケーションをデバッグする際に重要な情報を読み取るために必要です。更新ログファイルの推奨される形式はテキストであるため、プレーンテキストエディタを使用して開いたり、テキスト編集ツールを使用して処理したりできます。

しかし、Microsoftが読めないバイナリ形式に置き換えたため、バイナリファイルをフォーマットして好ましいテキスト形式に変換する新しいPowerShellコマンドレットGet-WindowsUpdateLogが追加されました。

このプロセスでは、ユーザーはMicrosoftシンボルサーバーに接続して最新のシンボルファイルを取得するか、Get-WindowsUpdateLogコマンドレットを実行する前に最新のWindowsシンボルファイルをダウンロードする必要がありました。ただし、接続時にMicrosoftシンボルサーバーで最新のシンボルが利用できない場合、プロセスは成功せず、フォーマットされたテキストファイルでフォーマットの問題が発生します。

この問題は現在解決されています

Microsoftシンボルサーバーへの接続は不要

Microsoftは、Windows 10 v 1709のリリースで、Windows Updateログファイルへのアクセスを全体的に改善しました。シンボルを取得するためにMicrosoftシンボルサーバーへの接続を確立する必要はなくなりました。ただし、ユーザーは引き続きGet-WindowsUpdateLog PowerShellコマンドレットを実行して、Windows Updateログをバイナリ形式から読み取り可能なテキストファイルに変換する必要があります。

スクリーンショットを見ると、コンピューターにネットワーク接続がまったくなくても(右下のアイコンを参照)、Get-WindowsUpdateLogは正常に動作することがわかります。

シンボルファイルとは

好奇心旺盛な方のために、ここで説明します。アプリケーション、ライブラリ、ドライバー、またはオペレーティングシステムがリンクされると、.exeファイルと.dllファイルを作成するリンカーは、シンボルファイルと呼ばれる追加ファイルも作成します。

シンボルファイルは、拡張子.pdbで識別されます。これらは、バイナリの実行時には実際には必要ではないが、デバッグプロセスでは非常に役立つ可能性のあるさまざまなデータを持っています。シンボルファイルには通常、次のものが含まれます。

  • グローバル変数
  • ローカル変数
  • 関数の名前とそのエントリポイントのアドレス
  • フレームポインタ省略(FPO)レコード
  • ソース行番号