Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windows 10 / Windows Server 2016でWindowsUpdate.logを表示・解析する方法

従来、Windows Updateエージェントやサービスの動作解析には、プレーンテキスト形式のWindowsUpdate.logファイルが使用されてきました。しかし、Windows 10(Windows Server 2016/2019)では、Windows Updateのログは従来のようなテキストファイルではなく、Event Tracing for Windows(ETW)形式で保存されるように変更されました。この変更により、Microsoftはログ記録サブシステムのパフォーマンス向上と、テキストファイルが占有するディスク容量の削減を実現しています。

Windows 10でのWindows Updateログの仕様変更

この変更により、Windows Updateのイベントはリアルタイムで%windir%\WindowsUpdate.logに書き込まれなくなりました。ファイル自体はWindowsフォルダーのルートにまだ存在していますが、中身は以下のようなメッセージのみです。

Windows Updateのログは現在、ETW(Event Tracing for Windows)を使用して生成されています。
PowerShellコマンドのGet-WindowsUpdateLogを実行して、ETWトレースを読み取り可能なWindowsUpdate.logに変換してください。
詳細については、https://go.microsoft.com/fwlink/?LinkId=518345 をご覧ください。

Windows 10 / Windows Server 2016でWindowsUpdate.logを表示・解析する方法

管理者にとって、この新しいログ方式の最大の欠点は、Windows Updateエージェントサービスを素早く解析できなくなったことです。従来のようにWindowsUpdate.logテキストファイルからエラーコードを検索したり、WSUSエージェントの設定を確認したり、更新プログラムのインストール履歴を調査したりすることが、そのままでは不可能になりました。

Get-WindowsUpdateLogコマンドレットでETWトレースをテキストログに変換する

ETWイベントをプレーンテキストのWindowsUpdate.logファイルに変換すれば、更新サービスのイベントを従来どおり便利に分析できます。これには、PowerShellコマンドレットGet-WindowsUpdateLogを使用します。

このコマンドレットは、すべての.etlファイル(C:\WINDOWS\Logs\WindowsUpdateに保存されています)から情報を収集し、単一のWindowsUpdate.logテキストファイルを作成します。

Windows 10 / Windows Server 2016でWindowsUpdate.logを表示・解析する方法

WindowsUpdate.logファイルを生成してC:\PS\Logsに保存するには、PowerShellコンソールで次のコマンドを実行します。

Get-WindowsUpdateLog -logpath C:\PS\Logs\WindowsUpdate.log

Windows 10 / Windows Server 2016でWindowsUpdate.logを表示・解析する方法

SymSrv.dllが見つからないエラーへの対処法

Windows Server 2016でGet-WindowsUpdateLogコマンドレットを実行すると、以下のような「SymSrv.dll is missing」エラーが表示されることがあります。

Copy-Item : Cannot find path 'C:\Program Files\Windows Defender\SymSrv.dll' because it does not exist.
At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\WindowsUpdate\WindowsUpdateLog.psm1:56 char:5

Windows 10 / Windows Server 2016でWindowsUpdate.logを表示・解析する方法

「C:\Program Files\Windows Defender\SymSrv.dll」が存在しないのは、一般的にサーバーにWindows Defenderがインストールされていない場合です。

このエラーを解消するには、次のいずれかの方法を使用します。

  • サーバーにWindows Defenderをインストールする
  • 別のWindows Server 2016/Windows 10マシンからSymSrv.dllファイルをコピーする
  • ローカルのWinSxSフォルダー内でSymSrv.dllを検索し(筆者の環境ではC:\Windows\WinSxS\amd64_windows-defender-service-cloudclean_…というディレクトリにありました)、「C:\Program Files\Windows Defender」フォルダーにコピーする

Windows 10 / Windows Server 2016でWindowsUpdate.logを表示・解析する方法

Get-WindowsUpdateLogの処理の流れ

古いバージョンのWindows 10では、Get-WindowsUpdateLogコマンドレットの初回実行時に、Microsoft Internet Symbol Storeのダウンロードとインストールが行われます。最新バージョンのWindows 10では、オンラインでAzure上のMicrosoftシンボルサーバーにアクセスします。その後、コマンドレットは以下の手順で処理を行います。

  1. すべての.etlファイルからデータを読み込む
  2. データをCSV(デフォルト)またはXML形式の中間ファイルに変換する
  3. 中間形式のデータを変換し、LogPathパラメーターで指定されたログテキストファイルに出力する(LogPathが指定されていない場合は、コマンドを実行したユーザーのデスクトップにWindowsUpdate.logが作成されます)

ヒント: ETLファイルを分析するもう一つの方法として、やや複雑ですがTracefmt.exeユーティリティを使って.etlからデータを取得する方法もあります。

生成されたログファイルを開くには、次のPowerShellコマンドを使用します。

Invoke-Item -Path C:\PS\Logs\WindowsUpdate.log

Windows 10 / Windows Server 2016でWindowsUpdate.logを表示・解析する方法

「Unknown(140): No Format Information found」エラーについて

環境によっては、WindowsUpdate.log内に次のような文字列が含まれることがあります。

Unknown(140): GUID=53212e4cc-4321-f43a-2123-9ada0090bc12b (No Format Information found).

Windows 10 / Windows Server 2016でWindowsUpdate.logを表示・解析する方法

これは、Windowsシンボルサーバーが利用できないことを意味します。現在、単体のWindowsシンボルインストーラーは配布されておらず、シンボルはAzure上のシンボルストアから自動的にダウンロードされます。インターネットに接続できない分離環境では、「Offline Symbols for Windows Update」の記事を参考に、オフライン版のシンボルサーバーを利用してください。

注意: 生成されたWindowsUpdate.logファイルは静的なものであり、以前のWindowsバージョンのようにリアルタイムで更新されることはありません。ファイルを更新するには、Get-WindowsUpdateLogコマンドレットを再度実行するか、一定間隔でファイルを自動的に再生成するスクリプトを作成する必要があります(ファイルは上書きされます)。

WindowsUpdate.logの主なイベントソース

生成されたWindowsUpdate.logの分析は決して簡単ではありません。多数のイベントソースからデータが収集されているためです。主なソースは以下のとおりです。

  • AGENT – Windows Updateエージェントのイベント
  • AU – 自動更新
  • AUCLNT – ユーザーとの対話
  • HANDLER – 更新プログラムインストーラーの管理
  • MISC – WUに関する共通情報
  • PT – ローカルデータストアとの更新プログラムの同期
  • REPORT – レポートの収集
  • SERVICE – wuauservサービスの開始/停止イベント
  • SETUP – Windows Updateクライアントの新バージョンのインストール
  • DownloadManager – BITSを使用したローカルキャッシュへの更新プログラムのダウンロード
  • Handler / Setup – インストーラーヘッダー(CBSなど)
  • その他多数

Select-Stringでログをフィルタリングして解析する

単純な正規表現を使えば、Windows Updateエージェント(agent)の直近30件のイベントだけを抽出できます。

Select-String -Pattern '\sagent\s' -Path C:\PS\Logs\WindowsUpdate.log | Select-Object -Last 30

Windows 10 / Windows Server 2016でWindowsUpdate.logを表示・解析する方法

複数のソースを組み合わせてフィルタリングすることも可能です。

Select-String -Pattern '\sagent\s|\smisc\s' -Path c:\PS\Logs\WindowsUpdate.log | Select-Object -Last 50

同様の方法で、KB番号やエラーキーワード(FAILED、Exit Code、FATALなど)を指定してテキストファイルを解析できます。

リモートコンピューターのWindowsUpdate.logを生成する

リモートのコンピューターやサーバーを対象にWindowsUpdate.logファイルを生成することもできます。

Get-WindowsUpdateLog -ETLPath \\ny-srf-1\C$\windows\Logs\WindowsUpdate -LogPath C:\PS\Logs\windowsupdate-ny-srf-1.log

イベントビューアーでWindows Updateの動作を確認する

Windows Updateサービスの動作分析には、イベントビューアーのログを利用する方法もあります。イベントビューアーで次のセクションを展開してください。

アプリケーションとサービスログ → Microsoft → Windows → WindowsUpdateClient → Operational

Windows 10 / Windows Server 2016でWindowsUpdate.logを表示・解析する方法

また、PowerShellから更新プログラムを管理したい場合は、PSWindowsUpdateモジュールの活用もおすすめです。

  1. PESファイルとは?Windows 11/10でPESファイルを開いて表示する方法

    本記事ではPESファイルについて解説します。PESファイルとは何か、そしてWindows 11/10でこれらのファイルを表示する方法をご紹介します。.pesという拡張子を持つファイルは、ほとんどの場合、刺繍ミシン用の縫製(ステッチ)指示データを保存する刺繍ファイルです。これはコンピュータ支援製造(CAM)ファイルの一種で、刺繍デザインやパターンが含まれています。このファイル形式はBrother International Corporationによって開発され、家庭用のBrother PEシリーズ刺繍ミシンやマルチニードル刺繍ミシンで主に使用されています。また、PESファイルには、カラーパレッ

  2. Windows Server 2016のインストール方法|ステップバイステップ完全ガイド

    本記事では、Windows Server 2016 Standardのインストール手順を詳しく解説します。Windows Server 2016には、Essentials・Standard・Datacenterの3つのエディションが用意されています。 Windows Server 2016の3つのエディションの違い Windows Server 2016 Essentials:ユーザー25名・デバイス50台までの小規模ビジネスに最適なエディションです。仮想化機能には対応していません。 Windows Server 2016 Standard:高度な機能と仮想化(最大2台の仮想マシン)を必要と