特定の修正プログラムがインストールされていることを確認するスクリプトを作成しようとしています。 Windows 8.1を実行しているテストコンピューターの1つで、get-hotfix
は修正プログラムの不完全なリストを返します。
それでも、プログラムと機能のコントロールパネルに表示される多数のパッチがあります。
Windows 8.0および8.1でインストールされた他のテストマシンはすべて正常に動作します。これはなぜですか? Powershellから修正プログラムの完全なリストを取得するにはどうすればよいですか?
編集:wmic qfe list
は、get-hotfix
と同じ4つの修正プログラムのみを表示します。
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
さまざまな方法でインストールされた更新を一覧表示するには、さまざまな方法を使用する必要があります。 wsusまたはconfigmgrによってインストールされるような
ここを見てください