Как я могу узнать, установлен ли KB или новее для Windows?

У меня есть система Windows, которая мне нужна для аудита. Требования состоят в том, чтобы (например) KB2160329 был установлен в систему. Из многих копаний я знаю, что KB2731847, который мы установили в среде, заменил более раннюю KB.

MSkbfiles.com работает, если вы знаете имя файла, например TCPIP.SYS. Ничего не делает, если вы просто ищете KB Исправления.

Как я могу сказать feed в скрипте, который я ищу KB2160329, и он может проверять наличие замененных патчей? Или есть сайт где-то, что мне не хватает?

[Отредактировано 7 мая 2014 г. 8:54 CST]

Я ищу способ сказать, что KB2731847, который находится в системе, действительно решает ту же проблему (плюс больше исправлений), что и KB2160329, которого нет в списке, поскольку он установлен в системе.

3 ответа

Вы можете загрузить эту таблицу от Microsoft: http://go.microsoft.com/fwlink/?LinkID=245778

Он включает в себя все опубликованные бюллетени по безопасности /KB с июня 1998 года: серьезность, влияние, название, уязвимый продукт, а также информацию о замененных бюллетенях /KB.

Тогда вам просто нужно немного написать скрипт, чтобы разумно сравнить установленную КБ с этим списком:)

Вы в конце концов нашли более легкий путь? Мне тоже интересно!

Я думаю, что вам придется создать свою собственную базу данных замененных исправлений.

Следующий PowerShell сообщит вам, установлено ли у вас определенное исправление:

get-hotfix | where HotfixID -eq 'KB2160329'

Вам нужно будет пройтись по вручную созданному списку, проверяя наличие замененного исправления. Не должно быть так сложно сделать.

Ответ Джулиана Найта показывает, как это сделать с помощью PowerShell, для обычной старой CMD вы можете попробовать [wmic qfe list full][2], Есть несколько вариантов форматирования, и вы можете разобрать это в своем скрипте.

Возможно, вы также захотите взглянуть на некоторые сканеры уязвимостей, такие как Nessus, если они решат вашу основную проблему, зная, уязвимы ли системы для определенных эксплойтов.