web-dev-qa-db-ja.com

Powershellの「get-hotfix」と「wmic qfe list」にインストール済みのアップデートがないのはなぜですか?

特定の修正プログラムがインストールされていることを確認するスクリプトを作成しようとしています。 Windows 8.1を実行しているテストコンピューターの1つで、get-hotfixは修正プログラムの不完全なリストを返します。

enter image description here

それでも、プログラムと機能のコントロールパネルに表示される多数のパッチがあります。

enter image description here

Windows 8.0および8.1でインストールされた他のテストマシンはすべて正常に動作します。これはなぜですか? Powershellから修正プログラムの完全なリストを取得するにはどうすればよいですか?

編集:wmic qfe listは、get-hotfixと同じ4つの修正プログラムのみを表示します。

7
a paid nerd

Get-Hotfixコマンドレットは Win32_QuickFixEngineering WMIクラスを利用してWindows更新を一覧表示すると思いますが、 コンポーネントベースのサービス(CBS) によって提供される更新のみを返します。 Microsoft Windowsインストーラー(MSI)またはWindows更新サイトによって提供される更新は、Get-Hotfix/Win32_QuickFixEngineeringから返されません。

次の例のように、PowerShellを介してWindows Update APIを使用してみることができます。これを試してみて、不足しているアップデートがあるかどうかをお知らせください。

$Session = New-Object -ComObject Microsoft.Update.Session
$Searcher = $Session.CreateUpdateSearcher()
$Searcher.Search("IsInstalled=1").Updates | ft -a Date,Title

EDIT:結果を検索するには、Where-Objectコマンドレット(またはエイリアスWhere)を使用して、特定の修正プログラム:

$Searcher.Search("IsInstalled=1").Updates | Where {$_.Title -like "*KB2760587*"} | ft date,title
11
bentek

さまざまな方法でインストールされた更新を一覧表示するには、さまざまな方法を使用する必要があります。 wsusまたはconfigmgrによってインストールされるような

ここを見てください

https://social.technet.Microsoft.com/wiki/contents/articles/4197.how-to-list-all-of-the-windows-and-software-updates-applied-to-a- computer.aspx

2
Root Loop