wmic qfe コマンドの実行結果が正しく表示されない

適用対象: Windows Vista EnterpriseWindows Vista UltimateWindows Server 2008 Enterprise

現象


Windows Server 2008 及び Windows Vista では、wmic qfe コマンドを実行した際に “InstalledOn” “InstalledBy” を正しく出力することができません。

C:\Users\Administrator>wmic qfe
Caption CSName Description FixComments HotFixID InstallDate InstalledBy InstalledOn Name ServicePackInEffect Status
http://support.microsoft.com/?kbid=955430 WIN-MSVYXB3WTT8 Update KB955430 S-1-5-21-211231530-2559324182-3297873828-500 01cec5749bb75688
http://support.microsoft.com/?kbid=948465 WIN-MSVYXB3WTT8 Service Pack KB948465 S-1-5-21-211231530-2559324182-3297873828-500 01cec57651c0df6e

※ この問題は、Windows Server 2008 R2 及び Windows 7 では発生しません。

原因


Windows Server 2008 及び Windows Vista では、"InstalledOn" と "InstalledBy" の項目については無効な 16 進数データが表示される問題が発生します。wmic qfe コマンドを実行した際に呼び出される Win32_QuickFixEngineering クラスの問題によって発生します。

回避策


Windows PowerShell 2.0 をインストールして、コマンドを実行することによって、更新日 (InstalledOn) 及び 更新者 (InstalledBy) の情報を得る事が可能です。

以下 4 つのパターン例より、取得する内容に従い以下のコマンドを実行します。



[1] Get-WMIObject -Class Win32_QuickFixEngineering

[2] Get-WMIObject -Class Win32_QuickFixEngineering | Format-List

[3] Get-WMIObject -Class Win32_QuickFixEngineering | Select-Object HotFixID,InstalledOn

[4] Get-WMIObject -Class Win32_QuickFixEngineering | Select-Object HotFixID,InstalledOn | Format-List



なお、Windows Server 2008 (Windows Vista 含む) では、標準機能として Windows PowerShell 2.0 はインストールされていません。そのため、以下の URL から Windows PowerShell 2.0 をダウンロードし、インストールする必要があります。



・ダウンロード詳細: Windows Server 2008 用の Windows PowerShell 2.0 および WinRM 2.0

968930  Windows Server 2008 用の Windows PowerShell 2.0 および WinRM 2.0 (KB968930)

ファイル名:  Windows6.0-KB968930-x86.msu



・ダウンロード詳細 Windows Server 2008 x64 Edition 用の Windows PowerShell 2.0 およびWinRM 2.0

968930  Windows Server 2008 x64 Edition 用の Windows PowerShell 2.0 および WinRM 2.0 (KB968930)

ファイル名:  Windows6.0-KB968930-x64.msu



MSU ファイルをダブルクリックする事で、実行されるインストーラーの指示に従ってインストールが可能です。インストーラーの処理が終了後、再起動を求められます。



インストール後、[スタート] – [すべてのプログラム] – [アクセサリ] – [Windows PowerShell] – [Windows PowerShell] を右クリックし、”管理者として実行” を選択して、Windows PowerShell を立ち上げます。