如何通过Windows API从win7中的注册表中获取补丁信息?

时间:2017-08-14 08:49:18

标签: windows registry

如何通过Windows API从win7中的注册表中获取补丁信息? 我想得到所有补丁的“id + name + desc + date”。

1 个答案:

答案 0 :(得分:0)

您可以使用以下几种方式列出已安装的HotFix:

<强> Powershell的:

Get-HotFix | select HotFixID, Description, InstalledOn

<强> WMI:

wmic qfe get HotFixID,Description,InstalledOn

两种方式都使用Win32_QuickFixEngineering WMI类列出Windows更新,并仅返回Component Based Servicing (CBS)提供的更新。
Get-Hotfix / Win32_QuickFixEngineering不会返回Microsoft Windows Installer(MSI)或Windows更新站点提供的更新。

因此,如果您可以使用Windows Update API与PowerShell列出所有更新

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

<强>注册表:
您可以在此位置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages上设置密钥,然后检查InstallClient的(字符串)值"WindowsUpdateAgent"

您可以使用处理registry的Windows API函数枚举密钥。这是来自MSDN的example

Windows Update API是Microsoft推荐的方式,因此您最好试一试。