今回は Windows UpdateのKB情報を取得する方法として「WMIC (QFE)」を利用した場合と「IUpdateSearcher (WUA)」を利用した場合の違いについてまとめておきます。
まずは実行してみる
今回はWindows 11環境にて実施しています。
IUpdateSearcherを実行した場合
まずはIUpdateSearcharにてKB情報を取得します。
PS> (New-Object -ComObject Microsoft.Update.Session).CreateUpdateSearcher().Search('IsInstalled=1').Updates | Format-Table -AutoSize
実行後、下記のような結果が得られます。
Title | AutoSelectOnWebSites |
---|---|
Windows Defender Antivirus マルウェア対策プラットフォームの更新プログラム – KB4052623 (Version 4.18.2001.10) | True |
2022-06 .NET Framework 3.5 および 4.8 の累積的な更新プログラム (x64 向け Windows 11 用) (KB5013889) | False |
Microsoft Defender Antivirus マルウェア対策プラットフォームの更新プログラム – KB4052623 (Version 4.18.2205.7) | True |
悪意のあるソフトウェアの削除ツール x64 – v5.103 (KB890830) | True |
Microsoft Defender Antivirus のセキュリティ インテリジェンス更新プログラム – KB2267602 (バージョン 1.371.514.0) | True |
2022-04 x64 ベース システム用 Windows 11 更新プログラム (KB4023057) | True |
WMICを利用して取得した場合
WMICを利用して取得してみます。
PS> wmic qfe list brief
実行すると、先ほどIUpdateSearcherで取得した結果と異なりました。(下記結果はわかりやすいようにテーブル化して表示しています)
HotFixID | Description |
---|---|
KB5013889 | Update |
KB5007575 | Update |
KB5015814 | Security Update |
KB5014034 | Update |
KB5016353 | Security Update |
取得先の違いとまとめ
まずIUpdateSearcherインターフェースを利用して取得する場合、Microsoft Windows Installer (MSI) またはWindows Updateによって提供された更新プログラムなどを列挙します。
WMIC QFE コマンドで取得する際は WMIクラスのWin32_QuickFixEngineering を参照し情報を取得します。基本的にこのクラスはComponent Based Servicingのアップデートのみを返すため、取得結果が異なるということです。
簡単にいうとQFE(クリック・フィックス・エンジニアリング)更新と呼ばれるちょっとした更新を取得します。
ですので、更新プログラムを取得する場合はWUA(IUpdateSearcherを利用)とQFE(WMICを利用)の両方から取得する必要があります。
最後に
今回はWUAとQFEの取得結果の違いと取得先についてお話ししました。
是非、参考にしてください。