2012-02-19 3 views
-1

Я могу прочитать список установленных приложений из реестра:Как читать установленные обновления (Просмотр установленных обновлений) из реестра на Vista, или 7

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

и на Vista, и 7

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

Но Vista, когда я нажимаю «Просмотр установленных обновлений», отображается список обновлений. Как прочитать этот список обновлений из реестра? В этом обновлении есть Internet Explorer, и я тоже должен его прочитать. Ключ @"SOFTWARE\Wow6432Node\Microsoft\Updates" содержит только три обновления, но в списке на панели управления -> Программы и возможности больше приложений и обновлений. Как читать их все из реестра?

Thanks

ответ

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 

Поиск Google показывает, что some kind individual has already written a complete VBScript, чтобы получить эту информацию. Он даже форматирует вывод как красивый HTML-файл.

 Смежные вопросы

  • Нет связанных вопросов^_^