“Microsoft.Update.Session”API - 查找更新是否导致重启

“Microsoft.Update.Session”API - 查找更新是否导致重启

我知道,如果你查看待处理的更新,就会看到一个标记(rebootrequired 或类似标记),它会告诉你是否必须重启、不需要重启或可能需要重启。似乎在很多更新的元数据中,这被标记为“可能,不确定”,因此没有可靠的方法来知道更新是否会导致重启。

给定 Microsoft.Update.Session API,有没有办法检查更新内容,看看代码本身是否会更改注册表设置, HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired以使 Windows 知道它需要重新启动?

我假设,即使元数据是“可能”,每次更新中都会有某些内容强制此注册表标志为“Ping!我需要重新启动!”

或者,是否有更可靠的方法来确定哪些更新需要重新启动?

答案1

之所以说“可能”,是因为这确实取决于具体情况,并且因情况而异。

如果 Windows Installer 安装在正在使用的文件上,或者程序包明确要求安装程序重新启动,则它可能会提示重新启动。很容易确定 Windows Installer 是否提示重新启动,因为它安装在正在使用的文件上。第一步是生成详细日志文件。在详细日志文件中,在属性转储中查找 ReplacedInUseFiles 属性是否存在。如果此属性存在且值为 1,则安装程序将需要重新启动,因为它覆盖了正在使用的文件。

相关内容