[ホーム] -
[Windows 10 FAQ 一覧] - [全てのインストール済み (hotfixWindows Update) 一覧を取得する]
コマンドプロンプトより hotfix 一覧を表示するには以下のようなコマンドがあります。
wmic qfe
powershell get-hotfix
しかしこのコマンドではインストールされたすべての hotfix は表示されないようです。
Windows Server 2012 R2での実行例:
C:\>powershell get-hotfix
Source Description HotFixID InstalledBy InstalledOn
------ ----------- -------- ----------- -----------
WIN-MYSRVN... Update KB2887535 NT AUTHORITY\SYSTEM 2016/08/27...
WIN-MYSRVN... Update KB2887536 NT AUTHORITY\SYSTEM 2016/08/27...
WIN-MYSRVN... Update KB2887537 NT AUTHORITY\SYSTEM 2016/08/27...
なぜなら、これらのコマンドはComponent Based Servicing (CBS)により提供されたWindows Update のみ表示されるためのようです。
Microsoft Windows Installer (MSI)などで提供された場合は表示されないようです。
全ての hotfix を出力するには例えば以下のような powershell スクリプトを作成して実行します。
=============================================================================
$mySession = New-Object -ComObject Microsoft.Update.Session
$mySearcher = $mySession.CreateUpdateSearcher()
$mySearcher.Search("IsInstalled=1").Updates | ft -a Date,Title
=============================================================================
上記のファイルを (例えば) c:\temp\test.ps1 というテキストファイルに保管します。
その後管理者としてコマンドプロンプトを開いた後、以下のコマンドを実行します。
C:\>powershell c:\temp\test.ps1
(*)powershell はカレントのフォルダを確認しません。よって ps1 ファイルはパスを指定する必要があります。
これでインストールされた一覧が表示されます。
【注意】以下のエラーが発生する場合はpowershell の実行が無効化されています。セキュリティ上の観点よりデフォルトでは無効化されています。
C:\>powershell ./test.ps1
./test.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル C:\temp\test.ps1 を読み込むことができませ
ん。詳細については、「about_Execution_Policies」(http://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ ./test.ps1
+ ~~~~~~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
セキュリティに十分注意した上で有効化します。
以下有効化するサンプルコマンドです。
C:\>powershell set-executionpolicy remotesigned