Назад | Перейти на главную страницу

API «Microsoft.Update.Session» - выяснить, вызывает ли обновление перезагрузку

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

Учитывая API Microsoft.Update.Session, есть ли способ проверить содержимое обновления, чтобы увидеть, изменит ли сам код параметр реестра HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired чтобы Windows знала, что ему нужно перезагрузиться?

Я предполагаю, что, хотя метаданные - «возможно», в каждом обновлении есть что-то, что заставляет этот флаг реестра становиться «Пинг! Мне нужно перезагрузиться!»

Либо так, либо есть более надежный способ выяснить, какие обновления требуют перезагрузки?

Причина, по которой он говорит «может быть», заключается в том, что это действительно зависит и уникально от ситуации к ситуации.

Установщик Windows может запросить перезагрузку, если он устанавливается поверх используемого файла или если пакет явно запрашивает перезагрузку установщика. Легко определить, запрашивает ли установщик Windows запрос на перезагрузку, поскольку он установлен поверх используемого файла. Первый шаг - создать подробный файл журнала. В подробном файле журнала проверьте наличие свойства ReplacedInUseFiles в дампе свойств. Если это свойство присутствует со значением 1, то установщику потребуется перезагрузка, поскольку он перезаписал используемый файл.