如何通过Windows API从win7中的注册表中获取补丁信息? 我想得到所有补丁的“id + name + desc + date”。
答案 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推荐的方式,因此您最好试一试。