Windows Updateの履歴画面で3か月以上前の情報が確認できず、セキュリティ監査などで必要な証拠を提示できずに困っていませんか。今回は、コマンドやコントロールパネルの設定を駆使して、過去の更新プログラム情報をしっかり確認する方法をご紹介します。どうぞ最後までご覧いただき、安心と確かな運用を実現するヒントをつかんでください。
Windows Update履歴が3か月以上前を表示しない原因と対策
Windows OSを運用していると、Windows Updateの履歴画面だけでは古い更新プログラムを確認できないことがあります。システムの仕様上、一定期間を経過するとWindows Updateの履歴タブから情報が消えてしまう、もしくは目視で確認できる件数に限りがあるなどの理由が挙げられます。特にセキュリティ監査や社内ルールで1年以上前の更新プログラム適用状況を示す必要がある場合、いざ履歴画面を開いたら数か月分しか表示されない…というケースは意外と多く、慌てて対策を探すことも珍しくありません。ここでは主な原因と対策方法を整理してみましょう。
原因1:Windows Updateの履歴画面が古い情報を自動的にクリアしている
Windows Updateの履歴表示機能は、OSのバージョンや設定によって管理される情報量や保持期間に制約があります。更新プログラムは頻繁にリリースされ、各月のPatch Tuesday(パッチ火曜)のタイミングや随時配布される重要な更新によって数多くの更新プログラムが適用されます。これらが積み重なると履歴の記録が膨大になりがちですが、システム上すべてを可視化して表示し続けることはありません。
一部の環境では3か月程度で古い履歴が非表示になることもあるため、「Windows Updateの履歴」タブだけを頼りにすると必要な情報が抜け落ちてしまいます。
原因2:Windows Updateログの仕様変更による確認手段の変化
かつては「C:\Windows\WindowsUpdate.log」というテキストファイルにすべての更新履歴が記録されていましたが、Windows 10以降ではEvent Tracing for Windows(ETW)という仕組みに切り替わっています。古い形式のログファイルは直接的に更新プログラムの全てを追跡できたものの、現在は「Get-WindowsUpdateLog」コマンドで一時的に出力しないと読み取りづらくなっており、しかも作成されるログもすべての過去データを含まない可能性があります。こうした変更によって、昔のようにログファイルだけで一括チェックする方法が使いづらくなりました。
原因3:システムクリーンアップやアップグレード時の履歴再初期化
ディスククリーンアップや大規模アップデート(Windows 10からWindows 11へのアップグレードなど)を行った際に、過去のログや履歴がリセットされてしまうケースもあります。不要ファイルの削除や新しいOSバージョンへの移行プロセスで、意図せず履歴情報が消えたり不完全になったりすることがあり、結果としてWindows Updateの履歴画面に古い情報が残らない状況になってしまうのです。
PowerShellで過去の更新プログラムを確認する方法
上記の原因を踏まえると、Windows標準のGUI画面からでは十分な履歴を確認しきれません。そこで役立つのがPowerShellによるコマンド出力です。IT管理者や監査担当者にとって、以下のPowerShellコマンドを覚えておくことは大きなアドバンテージになるでしょう。
get-hotfixコマンドを活用する
PowerShellで「get-hotfix」コマンドを実行すると、現在インストールされている更新プログラムの一覧を取得できます。管理者権限でPowerShellを起動し、下記のように入力してみてください。
get-hotfix
すると、KB番号やインストール日(InstalledOn)などが一覧表示されます。以下はイメージ例です。
Source | Description | HotFixID | InstalledBy | InstalledOn |
---|---|---|---|---|
MyComputer | Update | KB5013941 | NT AUTHORITY\SYSTEM | 2022/04/15 |
MyComputer | Security | KB5012170 | Domain\UserName | 2022/03/30 |
MyComputer | Update | KB5009543 | Domain\UserName | 2021/12/10 |
上記のように、過去の更新プログラムがいつ導入されたのかが一目瞭然です。数か月どころか1年前やそれ以前の更新プログラムが表示されることもあり、監査用の証拠としては十分役立ちます。また、出力結果をファイルに保存することで、後からいつでも参照できるようになります。
get-hotfixコマンドの出力をファイルに保存する方法
監査資料として提出したい場合は、以下のようにパイプを使ってCSVファイルやテキストファイルに書き出すと便利です。
# CSVに出力
get-hotfix | Export-Csv -Path "C:\temp\installed_hotfix.csv" -NoTypeInformation
# テキストファイルに出力
get-hotfix | Out-File "C:\temp\installed_hotfix.txt"
保存したCSVファイルをExcelで開けば、ソートやフィルターを利用して「InstalledOn」の日付順に並べ替えるなどの管理がしやすくなります。
「Get-WindowsUpdateLog」で従来型ログを一時生成
Windows 10以降ではWindows Updateのログ取得方法がETW(Event Tracing for Windows)に変わりましたが、PowerShellコマンド「Get-WindowsUpdateLog」を使うことで、一時的に従来型の形式に変換したログファイルを作成できます。以下の例を見てください。
Get-WindowsUpdateLog -LogPath "C:\temp\WindowsUpdate.log"
上記コマンドを実行すると、「C:\temp\WindowsUpdate.log」が生成されます。ただし、このログファイルは必ずしも過去のすべての履歴を含んでいるわけではありません。特に古い更新情報は含まれないケースが多いので、監査を目的とする場合は「get-hotfix」による確認と併せて使うのが望ましいでしょう。
Get-WindowsUpdateLog活用の注意点
- 生成されたログファイルには、新しい情報が中心に記録される傾向がある
- Windows Updateの失敗原因などのトラブルシューティングには役立つが、過去のインストール履歴を網羅的に閲覧するには不向き
- 変換に多少時間がかかることがあるので、焦らず待機する必要がある
コントロールパネル経由で「インストールされた更新プログラム」を確認
Windows Updateの履歴画面よりも多くの情報を表示してくれるのが、コントロールパネルの「プログラムと機能」にある「インストールされた更新プログラム」です。以下のステップで開きます。
- コントロールパネルを開く
- 「プログラム」をクリック
- 「プログラムと機能」を選択
- 左側メニューの「インストールされた更新プログラム」をクリック
すると、Windows Updateの履歴画面では表示しきれなかった古い更新プログラムが一覧表示されるケースがあります。ただし、ここにすべての更新が表示されるわけではなく、特定の種類の更新(例えば一部ドライバや小規模な修正プログラムなど)が反映されない場合もあります。それでもWindows Updateの履歴タブで確認できない情報をチェックできる可能性があるため、まずは試してみる価値は大いにあるでしょう。
イベントビューアーで更新プログラムの手がかりを探す
Windowsのイベントビューアーを利用すると、更新プログラムの適用にまつわるログ(インストール成功や失敗の履歴)を見つけられる場合があります。主なメリットは下記のとおりです。
- アプリケーションのインストールイベントを時系列で追える
- 成功・失敗などの結果だけでなく、関連エラーの詳細も把握しやすい
- Windows Updateサービスの動作状況に関するイベントが見られる
実際の参照手順としては、イベントビューアーを起動し「Windowsログ」→「セットアップ」または「システム」などの項目を確認し、インストールや更新に関するイベントIDを探してみます。特に大きな変更やトラブルが起こったタイミングを絞り込んでチェックすれば、監査で必要となる証拠を補足的に得られるでしょう。ただしイベントビューアーでも、ある程度の期間を経過すると古いログがローテーションなどで上書き削除されてしまう可能性がある点には注意が必要です。
定期的なログ・出力管理のすすめ
Windows Updateの履歴を長期間にわたって保持する場合、問題が起きてから確認方法を探すのではなく、日常的に監査用のログや出力を保存する運用が理想的です。以下は具体的な運用例です。
1. 定期的なPowerShell出力の取得とアーカイブ化
- 月に1回、またはパッチ適用直後などのタイミングで、PowerShell(get-hotfix)による出力結果をCSVファイルとして保存
- 保存したファイルを監査担当部署やセキュリティ担当者と共有し、必要に応じて外部のバックアップ媒体へアーカイブ
- 保存時には「取得日時」「担当者名」「取得方法」などのメタ情報もドキュメント化しておくと後からの検索や証拠能力が高まる
2. 大規模アップデートやクリーンアップ前のバックアップ
- Windows 10からWindows 11へのアップグレードを行う前や、ディスククリーンアップを実施する前に、必ず「get-hotfix」の出力結果や「インストールされた更新プログラム」の画面キャプチャを取得
- もしアップグレードやクリーンアップによって古い情報が消えてしまっても、事前に取得したログを参照できる体制を整える
3. イベントログのエクスポート
- 重要なイベントログをエクスポートし、ローカル以外の安全な場所に保管しておく
- 期間をあけずに定期実行することで、ローテーションによるログ消失を防ぐ
- 監査要件によっては1年以上の保管が必要な場合もあるため、長期アーカイブの手段を検討する
4. システム管理ツールの利用
もし複数台のPCやサーバーで一括管理が必要な場合、System Center Configuration Manager(SCCM)やWindows Server Update Services(WSUS)、さらにクラウドベースのMicrosoft Intuneなどを組み合わせることで、各クライアントの更新プログラム適用状況を集中管理する運用も有効です。大規模環境やリモートワークが普及している組織であれば、これらの管理ツールを活用し、PowerShellスクリプトと連動させることで監査対応をより効率化できます。
よくある質問と解決策
ここでは、Windows Updateの過去ログをめぐる一般的な質問をピックアップし、その解決策をまとめました。
Q1. そもそもWindows Updateの履歴に表示されていない更新プログラムは正常にインストールされたのか?
A1. Windows Updateの履歴にすべてが表示されるわけではありません。ドライバの更新や、OSの一部に含まれる小規模な修正が一括アップデートの一部として導入された場合など、履歴タブには表示されないケースがあります。
確認したい場合は「get-hotfix」コマンドやコントロールパネルの「インストールされた更新プログラム」を併用してください。
Q2. 「プログラムと機能」にも表示されない更新プログラムを見つける方法は?
A2. 「get-hotfix」でも出力されないような特定のパッチやドライバ更新は、イベントビューアーでインストールログを探すか、製品ベンダーが提供する専用ログを参照する必要があります。また、WSUSなどのサーバー側でどの更新が配布されたかを記録していれば、そちらを確認することも有効です。
Q3. 過去にインストールしたセキュリティ更新のみを絞り込んで確認できる?
A3. 「get-hotfix」コマンドの出力には「Description」が含まれるため、「Security Update」や「Update」、「HotFix」などのキーワードでフィルタリングが可能です。PowerShell上でパイプとWhere-Objectを使うことで、セキュリティ更新のみリストアップするといった応用も可能です。
例)
get-hotfix | Where-Object {$_.Description -like "*Security*"}
Q4. 監査レポートを作成する際に注意すべきポイントは?
A4. 単に更新プログラムの一覧を出すだけでなく、その更新プログラムの概要や修正内容、また適用の重要度などもまとめておくと監査レポートとしての完成度が上がります。Windows UpdateのKB番号をもとにマイクロソフトのサポートページを参照すると、各KBに関する詳細情報やリリース日などが確認できます。
まとめ:複数の手段を組み合わせて確実に証拠を残す
Windows Update履歴画面が3か月以上前の更新プログラムを表示しない問題に対処するには、次のポイントを押さえることが大切です。
- PowerShell「get-hotfix」でインストール済み更新プログラムの一覧を取得
- コントロールパネルの「プログラムと機能」 → 「インストールされた更新プログラム」でも追加情報をチェック
- 必要に応じてGet-WindowsUpdateLogやイベントビューアーも活用
- 古い履歴が自動的にクリアされてしまうため、定期的なログの保存運用を行うことが最善策
セキュリティ監査やコンプライアンス対応を行う企業では、過去の更新プログラムが正しく適用されている事実を証明することが極めて重要です。万が一、脆弱性が指摘された際に「いつどのようにパッチを当てたか」を明確に示せなければ、責任やリスクが大きくなってしまいます。
ぜひ本記事で紹介した方法を活用しながら、Windows Updateの履歴をしっかり押さえて安心なシステム運用を行ってください。
コメント