Windows API эквивалентно «WMIC QFE Get»

Я новичок в C ++ и в настоящее время работаю, чтобы получить информацию о Windows Hotfix / Patch в C ++ DLL.

Я оценил следующие способы:

Выполнив подпроцесс в коде C ++ и запустивwmic qfe get и прочитать все данные.Используя API C ++ для инициализации COM, подключитесь к Wbem и выполнитеselect * from win32_quickfixengineering запрос.

Помимо вышеупомянутых двух методов,

Существует ли какой-либо прямой API Windows, который выполняет всю работу за меня и дает список информации KB, установленной в настоящее время на компьютере?

 TechyHarry08 окт. 2012 г., 20:12
Эта информация используется для получения информации о патче машины.
 Raymond Chen08 окт. 2012 г., 16:50
Список КБУстановленные на данный момент на машине бесполезны. Например, если вы хотите знать, установлено ли исправление для Q1234, ответ может быть «да" хотя KB1234 отсутствует в списке установленных КБ. Исправление может быть в виде пакета обновления или пакета обновления. Правильный ответ не в том, чтобы запрашивать список QFE и искать 1234, а в том, чтобы спросить WU, нужен ли QFE 1234.
 TechyHarry08 окт. 2012 г., 18:37
Спасибо Чен за быстрый ответ. Мне точно нужен список KB, что дает qfe get. Мне известен сценарий, когда некоторые КБ входят в пакеты обновления, мы можем получить эту информацию из Информации об ОС. Если какие-либо API-интерфейсы, написанные как qfe, получаются, я могу использовать их непосредственно в коде, а не писать полностью с нуля.
 Raymond Chen08 окт. 2012 г., 18:57
У тебя нетЯ объяснил, что тымы собираемся использовать эту информацию дляНе ясно, является ли это правильным подходом. В любом случае, вы всегда можетепрограммировать напрямую в WMI, Тот'Это все, что делает WMIC.

Ответы на вопрос(1)

Решение Вопроса

Вы можете использоватьWindows Update Agent API иIUpdateSearcher интерфейс.

 Ahmad Soboh26 апр. 2019 г., 19:42
Windows Update API не работает• вернуть все установленные исправления, особенно если исправление было установлено вручную, а не через интерфейс обновлений Windows.
 TechyHarry09 окт. 2012 г., 09:54
Привет, RRUZ, я прошел через интерфейс IUpdateSearcher и реализовал пример кода, чтобы получить KB Info. Но я нашел еще пару интерфейсов IUpdateSearcher2 и IUpdateSearcher3, в которых есть несколько дополнительных опций для поиска пользовательского подхода. Не могли бы вы объяснить, где именно этот интерфейс IUpdateSearcher (x) ищет на компьютере Windows, чтобы получить информацию? Ищет ли он те же пути реестра, которые ищет wmic qfe, или любую другую специальную файловую систему с информацией об обновлении?
 TechyHarry08 окт. 2012 г., 20:24
Отлично. Отличная статья. Я постараюсь преобразовать это в C ++. Еще несколько вопросов. Предоставляет ли WUA всю информацию об обновлениях и исправлениях во всех версиях Windows 32-разрядной и 64-разрядной ОС и какое-либо конкретное кодирование, необходимое для 64-разрядной ОС? И эта АВП работает на всех серверах Windows от 2000 до 2008 R2 и клиентских Windows XP на Windows 8?
 TechyHarry08 окт. 2012 г., 18:44
Привет РРУЗ, спасибо за ответ. Я посмотрел на интерфейс IUpdateSearcher, он похож на выполнение select * из win32_quickfixengineering и итерацию результатов. Даже выполнение запроса и IUpdateSearcher выполняются через COM. Не могли бы вы пролить свет на разницу между выполнением запроса и использованием IUpdateSearcher? Какая реализация лучше, быстрее и работает на всех платформах Windows?
 RRUZ08 окт. 2012 г., 21:50
WUA API работает точно так же в X86 и 64-битной Windows, и доступен начиная с Windows 2000 Professional с пакетом обновления 3 (SP3) в версиях Windows для настольных компьютеров и серверов.
 RRUZ08 окт. 2012 г., 18:58
@HareeshSarma, некоторое время назад я написалстатья об этой теме, которая может помочь вам понять, как это работает, код на Delphi, но может быть легко переведен на C ++

Ваш ответ на вопрос