Windows 10 ならびに Winodws Server 2016 /2019 の Windows Update のログを確認するときのメモを。
以前 直近の Windows Update の実行状態をスクリプトで取得する というブログを書きましたが、上記の OS では、Update Session Orchestration (USO) のログを見ることで新たな洞察を得られることもありますので、情報を追加しておきたいと思います。
現在の Windows OS の Windows Update の仕組みについては Windows Update はどのように機能しますか? で解説が行われています。
Windows 10 / Windows Server 2016 / Windows Server 2019 では、Windows Update の実行を個なう際には、Update Orchestrator Service (UsoSvc) がコアコンポーネントとなり、スキャンスケジュールの制御等が行われています。
Windows Update のログを確認する際には、「Get-WindowsUpdateLog」を実行することで Windows Update の ETL ファイルをログとしてエクスポートすることができます。
この PowerShell のコマンドレットでは、コンソールの出力内容を見ている限りは「C:\Windows\Logs\WindowsUpdate」配下の ETL ファイルがエクスポート対象として使用されているように見受けられます。
Windows Update のログについては、Windows Update のログ ファイル に記載されていますが、上記のログファイル以外にも「C:\ProgramData\USOShared\Logs」にも格納がされています。
この中に「Update Orchestrator Service」(UsoSvc) によってログが出力されている ETL ファイルが格納されています。
「UpdateSessionOrchestration.xxx.etl」が UsoSvc によって使用されている ETL ファイルになるかと。
ETL ファイルについては、バイナリファイルですので、そのままでは内容を確認することはできません。
イベントビューアーの「保存されたログを開く」を使用することで ETL ファイルを開くことはできるのですが、この方法では、UpdateSessionOrchestration の ETL ファイル内のメッセージまでは確認することができません。
UpdateSessionOrchestration の ETL ファイルの内容を確認したい場合は「netsh コマンド」の「trace convert」を使用することで、内容を確認することができます。
netsh trace convert input=.\UpdateUx.001.etl output=.\out.txt
このファイルを確認することで、「Update Orchestrator Service」がどのようなトリガーによって起動され、Windows Update はどの環境 (Microsoft のサイト / WSUS) から情報を取得しようとしたかといった情報を確認することができます。
Windows Update が正常に動作していない場合、解析するための情報は複数あった方が、解析の楽になるケースもあると思います。
一般的に使用する
- Get-WindowsUpdateLog
- イベントビューアーの WindowsUpdateClient のログ
以外にも、Update Session Orchestration のログファイルを見るという方法があるということを覚えておいても良いのではないでしょうか。