2012-02-19 71 views
-1

我可以從註冊表中讀取安裝的應用程序的列表:如何從註冊表讀取已安裝的更新(查看已安裝的更新)在Vista或7

@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" 

和Vista和7

@"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" 

但在Vista時,我點擊查看安裝更新列表更新顯示。 如何從註冊表中讀取此更新列表?在這個更新是Internet Explorer,我也必須閱讀它。 重點@"SOFTWARE\Wow6432Node\Microsoft\Updates"只包含三個更新,但在控制面板中的列表 - >程序和功能 有更多的應用程序和更新。如何從註冊表中讀取它們?

謝謝

回答

1

使用WMI是解決此問題的正確方法。具體來說,Win32_QuickFixEngineering class是你想要的。

這應該工作在Windows Vista上就好了。您的問題源於以下事實:從Windows Vista開始,由基於組件的服務(CBS)安裝的更新未在註冊表中列出。

樣品VBScript代碼:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" _ 
    & strComputer & "\root\cimv2") 
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 

谷歌搜索顯示,some kind individual has already written a complete VBScript獲得此信息。它甚至將輸出格式化爲一個漂亮的HTML文件。

相關問題