如何在Vista或7上从注册表中读取已安装的更新(查看已安装更新)



我可以从注册表中读取已安装应用程序的列表:

@"SOFTWAREMicrosoftWindowsCurrentVersionUninstall" 

以及在Vista和7 上

@"SOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionUninstall"

但在Vista中,当我单击"查看已安装的更新"时,会显示更新列表。如何从注册表中读取此更新列表?在这个更新是Internet Explorer,我也必须阅读它。密钥@"SOFTWAREWow6432NodeMicrosoftUpdates"仅包含三个更新,但在"控制面板"->"程序和功能"的列表中还有更多的应用程序和更新。如何从注册表中读取所有内容?

感谢

使用WMI是解决该问题的正确方法。具体来说,Win32_QuickFixEngineering类就是您想要的。

这在Windows Vista上应该可以正常工作。您的问题源于这样一个事实:从Windows Vista开始,注册表中没有列出由基于组件的服务(CBS)安装的更新。

示例VBScript代码:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\" _
    & strComputer & "rootcimv2")
Set colQuickFixes = objWMIService.ExecQuery _
    ("Select * from Win32_QuickFixEngineering")
For Each objQuickFix in colQuickFixes
    Wscript.Echo "Description: " _
        & objQuickFix.Description
    Wscript.Echo "Hotfix ID: " & objQuickFix.HotFixID
Next

谷歌搜索显示,有些人已经编写了一个完整的VBScript来获取这些信息。它甚至将输出格式化为一个漂亮的HTML文件。

相关内容

  • 没有找到相关文章

最新更新