Windowsで更新プログラムの適用履歴をPowerShellで確認する方法

Windowsで更新プログラムの適用履歴をPowerShellで確認する方法

Windows 10でWindows Updateの更新履歴を確認したい場合、台数が少なければ、1台ずつ設定アプリを開いて確認する方法もありですが、台数が多くなると1台ずつ設定画面を開いて確認するのは効率が良くありません。

そのようなときは、PowerShellを利用してコマンドで更新プログラムの適用履歴を確認するのが効率的です。

そこでここでは、Windows 10のPowerShellで更新プログラムの適用履歴を確認する方法を紹介します。

Windows 10でインストール済みアプリの一覧をコマンドで収集する方法
ここでは、Windows 10でインストールされているアプリの一覧を、WindowsコマンドやPowerShellコマンドレットを使って収集する方法を紹介します。

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows 10 Pro 64bit2004

PowerShellで更新履歴を確認する

更新履歴を確認するには「Get-HotFix」コマンドレットを利用します。

PowerShellを起動して「Get-HotFix」と入力してエンターキーを押すと、以下のように更新プログラムの適用履歴が表示されます。

PS> Get-HotFix

Windowsで更新プログラムの適用履歴をPowerShellで確認する方法

更新履歴を並べ替える

Get-HotFixコマンドレットの出力結果は、Sort-Objectコマンドレットで並べ替えることができます。

たとえば、KB番号(HotFixID列)で並べ替えたいときは、以下のようにコマンドを実行します。

PS> Get-HotFix | Sort-Object HotFixID

Windowsで更新プログラムの適用履歴をPowerShellで確認する方法

インストール日(InstalledOn列)の新しい順で並び替えたいときは、以下のようにコマンドを実行します。

PS> Get-HotFix | Sort-Object InstalledOn -Descending

Windowsで更新プログラムの適用履歴をPowerShellで確認する方法

Descriptionの値で絞り込む

Get-HotFixコマンドレットでは、Description列の値で出力結果を絞り込むこともでき、その場合は「-Description」オプションを利用します。

たとえば、Description列の値が「Update」の更新プログラムだけに絞り込みたい場合は、以下のようにコマンドを実行します。

PS> Get-HotFix -Description "Update"

Windowsで更新プログラムの適用履歴をPowerShellで確認する方法

KB番号で絞り込む

特定の更新プログラムが適用されているかを調べたいときは、Where-Objectコマンドレットを併用します。

たとえば、KB4556803という更新プログラムが適用されているか調べるときは、以下のようにコマンドを実行します。

PS> Get-HotFix | Where-Object HotFixID -match "KB4556803"

対象の更新プログラムがインストールされている場合は、結果文字列が出力され、該当する更新プログラムがない場合は、なにも出力されません。

Windowsで更新プログラムの適用履歴をPowerShellで確認する方法

KB番号の一部で絞り込む場合は、以下のようにコマンドを実行します。

PS> Get-HotFix | Where-Object HotFixID -like "KB454*"

Windowsで更新プログラムの適用履歴をPowerShellで確認する方法

更新履歴をテキストファイルに出力する

Get-HotFixコマンドレットの出力結果を、テキストファイルに出力する場合は、Out-Fileコマンドレットを併用します。

たとえば「C:\result.txt」というファイルに出力するときは、以下のようにコマンドを実行します。

PS> Get-HotFix | Out-File "C:\result.txt"

出力されたテキストファイルは、次のような内容になります。

Windowsで更新プログラムの適用履歴をPowerShellで確認する方法

リモートマシンの更新履歴を取得する

Get-HotFixコマンドレットは「-Computer」オプションで、リモートマシンのコンピューター名やIPアドレスを指定することで、他のWindows 10マシンの更新履歴を取得できます。

たとえば、IPアドレスが172.28.212.12のリモートマシンの更新履歴を取得する場合は、以下のようにコマンドを実行します。

PS> Get-HotFix -ComputerName 172.28.212.12 -Credential administrator

「-Credential」オプションには、リモートマシンの資格情報を入力します。

Windowsで更新プログラムの適用履歴をPowerShellで確認する方法

なお、ActiveDirectoryドメイン環境で、ドメインに参加しているマシン同士なら特別な設定をしなくても、リモートマシンに対してGet-HotFixコマンドレットを実行できますが、ワークグループ環境では、リモートマシンのファイアウォールに受信の許可設定を追加する必要があります。

リモートマシンが「Windows Defender ファイアウォール」を利用している場合は、リモートマシン上で、管理者権限でPowerShellを起動して、以下のコマンドを実行することで受信の規則を追加できます。

PS> New-NetFirewallRule -DisplayName "@RPC-enable" -Program "%SystemRoot%\System32\svchost.exe" -Profile Private -Direction Inbound -Protocol TCP -LocalPort RPC -Action Allow

あとがき

ちなみに、Windows 10の更新履歴は「Get-ComputerInfo」コマンドレットでも取得することができます。

PS> (Get-ComputerInfo).OsHotFixes

Windowsで更新プログラムの適用履歴をPowerShellで確認する方法