Windows Update の適用状況を正確に把握することは、トラブル対応やセキュリティ管理において非常に重要です。
特に業務用PCやサーバー環境では、「いつ」「どの更新プログラムが」「正しく適用されたか」を明確に説明できる状態が求められます。
GUI から Windows Update の履歴を確認する方法もありますが、ログ取得や一括確認、スクリプト化を行う場合は PowerShell を使用する方が確実です。本記事では、PowerShell を使用して Windows アップデート状況を確認する実践的な方法を、目的別に分かりやすく解説します。
PowerShellで確認するメリット
PowerShell を使って Windows Update の状況を確認することで、次のような利点があります。
- 更新履歴を正確な日時付きで取得できる
- コマンド実行結果をログとして保存できる
- 複数端末で同じ確認手順を統一できる
- リモート管理や自動化に対応できる
特に、障害調査や運用報告の場面では、コマンド結果をそのまま証跡として提出できる点が大きなメリットです。
Windows Updateの基本的な仕組み
Windows Update は、以下のような更新を管理しています。
- セキュリティ更新プログラム
- 品質更新プログラム
- 機能更新プログラム
- ドライバー更新
これらは内部的に「更新履歴」「インストール済み更新」「更新要求中」のように管理されており、PowerShell からもそれぞれ異なる方法で確認します。
インストール済み更新プログラムを確認する方法
最も基本的な確認方法は、すでにインストールされた更新プログラムを一覧で取得することです。
Get-HotFix コマンド
|
1 |
Get-HotFix |
このコマンドでは、以下の情報が表示されます。
- HotFixID(KB番号)
- 説明
- インストール日時

特定の KB 番号が適用されているか確認したい場合は、次のように指定できます。
|
1 |
Get-HotFix -Id KB5071142 |
この方法は、特定の更新が適用済みかどうかを確認する用途に適しています。

Windows Update の履歴を確認する方法
更新が「いつ実行されたか」「成功したか失敗したか」を確認したい場合は、Windows Update の履歴を参照します。
Windows Update API を使用した確認
PowerShell 標準機能だけでは履歴情報が限定されるため、COM オブジェクトを使用します。
|
1 2 3 4 5 |
$session = New-Object -ComObject Microsoft.Update.Session $searcher = $session.CreateUpdateSearcher() $history = $searcher.QueryHistory(0, 20) $history | Select-Object Date, Title, ResultCode |
ResultCode の意味は以下の通りです。
- 2 : 成功
- 3 : 成功(再起動が必要)
- 4 : 失敗
この方法を使うことで、更新の成否まで含めた詳細な履歴確認が可能になります。
現在の更新状態を確認する方法
「更新が未適用なのか」「更新処理が進行中なのか」を確認したい場合は、Windows Update サービスの状態を確認します。
|
1 |
Get-Service -Name wuauserv |
状態が「Running」であれば、Windows Update サービスは稼働中です。
停止している場合は、更新処理が行われていない可能性があります。
Windows Update の最終実行日時を確認する方法
最後に更新が実行された日時を確認するには、イベントログを参照します。
|
1 2 3 |
Get-WinEvent -LogName System | Where-Object { $_.ProviderName -eq "Microsoft-Windows-WindowsUpdateClient" } | Select-Object TimeCreated, Message -First 5 |
この方法は、GUI では確認しづらい細かな実行履歴の把握に有効です。
複数PCでの確認を自動化する例
管理業務では、複数端末の更新状況を一括確認したいケースもあります。その場合は、PowerShell リモート実行を活用します。
|
1 2 3 |
Invoke-Command -ComputerName PC01,PC02 { Get-HotFix | Select-Object HotFixID, InstalledOn } |
これにより、複数端末の更新状況を一度に取得できます。
ログとして保存する方法
確認結果をログファイルとして保存する場合は、次のようにします。
|
1 |
Get-HotFix | Out-File "C:\Log\WindowsUpdateStatus.txt" |
運用報告や証跡提出が必要な環境では、この方法が非常に有効です。
よくある質問(Q & A)
Q1. Get-HotFix で表示されない更新はありますか?
はい、あります。
一部の品質更新や機能更新は Get-HotFix に表示されない場合があります。その場合は、Windows Update 履歴やイベントログを併用して確認してください。
Q2. PowerShell で更新の失敗理由は確認できますか?
更新履歴の ResultCode やイベントログを確認することで、失敗した事実までは把握できます。詳細な原因は WindowsUpdate.log の解析が必要です。
Q3. 管理者権限は必要ですか?
はい。
Windows Update 関連情報の取得には、管理者として PowerShell を実行する必要があります。
Q4. Windows 11 でも同じ方法で確認できますか?
はい。
本記事で紹介した方法は、Windows 10 および Windows 11 の両方で利用できます。
まとめ
PowerShell を使用することで、Windows Update の状況を正確かつ効率的に確認できます。
GUI 操作に比べて再現性が高く、ログ取得や自動化にも対応できるため、業務用途では特に有効です。
更新トラブルの調査や定期確認の際は、本記事で紹介した方法を活用し、確実な運用管理を行ってください。



