Windowsマシンにインストールされている更新プログラムを、以前は内蔵GUIを使って簡単に把握できました。しかし、Windows Update HistoryのGUIは、基本的な機能以外はあまり使い物になりません。表示されるのは基本的なリストのみで、検索もあまり使いやすくありません。そのため、トラブルシューティングや特定の更新プログラムのステータス確認を行う場合は、コマンドラインを使用することが多いでしょう。特に、古いwmicツールのサポートが段階的に終了しているため、なおさらです。このガイドでは、PowerShellから情報を素早く取得する方法、そして面倒な外部ソフトウェアを使わずにリモートマシンの更新プログラムを確認する方法を解説します。
アップデートがいつインストールされたか、特定のKBが存在するかどうかを正確に把握できれば、多くの手間を省くことができます。さらに、スクリプトを作成したり複数のPCを管理したりする場合、PowerShellを使えば作業がさらに楽になります。リストを出力したり、データをエクスポートしたり、個々のアップデートをチェックしたりするコマンドが登場し、GUIに固執することなく、トラブルシューティングを迅速化し、パッチの適用状況を把握できるようになります。
PowerShellとコマンドラインでWindows Updateを一覧表示および管理する方法
WMIC でコマンド プロンプトを使用する (旧式ですが便利です)
サポートが終了していなければ、 cmd.exewmic qfe list brief /format:tableのようなコマンドを簡単に実行できます。このツールを使えば、更新ID()、日付()、インストールしたユーザー()などの情報が得られます。しかし、ここで問題があります。MicrosoftはWindows 11 24H2以降、WMIベースのツールをデフォルトで無効化する計画を進めています。そのため、この方法は永久に機能しない可能性があり、新しいバージョンでも機能しない可能性があります。それでも、古い環境では手早く実行でき、問題なく動作します。HotFixIDInstalledOnInstalledBy
PowerShell への切り替え: 新しい親友
ここからはより柔軟になります。PowerShellはGet-HotFix最新の代替ツールであり、更新情報の取得において非常に信頼性が高いです。PowerShellで以下を実行してください。
Get-HotFix | Select-Object HotFixID, InstalledOn, InstalledBy, Description | sort InstalledOn -Desc
これにより、最新のアップデートから順に、見やすくソートされたリストが表示されます。より詳細な情報が必要な場合や出力を調整する必要がある場合は、 Win32_QuickFixEngineeringクラスを使用することGet-CimInstanceもできます。これも同様に機能します。
Get-CimInstance -ClassName Win32_QuickFixEngineering | select HotFixID, InstalledOn | sort InstalledOn -Descending
後で確認したり共有したりするために、簡単にエクスポートしたいですか?次の手順を実行してください。
Get-HotFix | Format-Table -AutoSize > c:\temp\update_list.txt
KB5056578のような特定のアップデートをお探しですか?簡単です:
Get-HotFix -Id 'KB5056578'
マシンにアップデートが存在する場合にのみ情報を返します。リモートチェックの場合は、-ComputerNameパラメータを追加するだけです。
Get-HotFix -ComputerName wks1234
$computers = @('comp1', 'comp2', 'comp3') $updateId = 'KB5056578' foreach ($computer in $computers) { $hotfix = Get-HotFix -ComputerName $computer -Id $updateId -ErrorAction SilentlyContinue if ($hotfix) { Write-Host "Update $updateId is installed on $computer." } else { Write-Host "Update $updateId is NOT installed on $computer." } }
最後に正常にインストールされたアップデートの日付を取得する
Windows が最後に更新プログラムを正常にインストールした時刻を知りたい場合は、次のコマンドを実行します。
Get-HotFix | sort InstalledOn -Desc | select -First 1 | Format-List InstalledOn
場合によっては、Windows が最近パッチを適用したかどうかを確認する唯一の手がかりとなることもあります。更新履歴が破損していたり、日付が一致していなかったりすると、多少の誤差が生じる可能性がありますが、通常は問題ありません。
今のところはちょっと変な感じですが、PowerShellを使うとアップデートを直接管理するのが本当に簡単になります。特にMicrosoftが古いツールを廃止し始めた今、PowerShellは本当に便利です。これ以上ないほどすっきりしています。