问题 如何检测Windows 7所需的重新启动


我正在开发一个项目,在Windows 7 PC上安装了几个软件和驱动程序。无需用户输入即可使用。

现在有一个问题:如何在此程序中确定是否需要重新启动才能完成安装(可以是驱动程序或软件)。

我们正在开发嵌入式Windows 7,并且没有启用任务栏或任何工具提示或类似的东西可见。软件以静默方式安装。


2438
2018-03-18 16:40


起源



答案:


使用以下注册表项:

HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations

资源: 如何找出我刚刚安装的MSI是否要求重启Windows?

正如问题的提问者所发现的那样 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending 只要操作系统是Vista或更新版本,就会显示机器上的重启等待时间。


10
2018-03-18 16:45



这对司机也有用吗?只是要知道它,因为我已经读过它不是100%肯定^^谢谢 - hoffmanuel
我认为这取决于驱动程序的安装方式。我建议您在安装完成后检查嵌入式系统上的注册表。如果密钥未提供您要查找的信息,请使用新信息更新问题。 - Pete Garafano
我发现一些从Vista开始的写作也有一个 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending 密钥可用以及 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired 除了你指定的。我会看,他们是如何工作的 - hoffmanuel
如果存在名为“RebootRequired”的子项,请选中“HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Component Based Servicing \”。如果存在名为“RebootRequired”的子项,请选中“HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ WindowsUpdate \ Auto Update \”。如果值“PendingFileRenameOperations”(如果存在),请选中“HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \”。如果满足任何这些条件,则需要重新启动。 - hoffmanuel
@hoffmanuel RebootPending not RebootRequired“HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Component Based Servicing \”。你能在之前的评论中解决这个错字吗? - Ainullin Damir


答案:


使用以下注册表项:

HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations

资源: 如何找出我刚刚安装的MSI是否要求重启Windows?

正如问题的提问者所发现的那样 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending 只要操作系统是Vista或更新版本,就会显示机器上的重启等待时间。


10
2018-03-18 16:45



这对司机也有用吗?只是要知道它,因为我已经读过它不是100%肯定^^谢谢 - hoffmanuel
我认为这取决于驱动程序的安装方式。我建议您在安装完成后检查嵌入式系统上的注册表。如果密钥未提供您要查找的信息,请使用新信息更新问题。 - Pete Garafano
我发现一些从Vista开始的写作也有一个 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending 密钥可用以及 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired 除了你指定的。我会看,他们是如何工作的 - hoffmanuel
如果存在名为“RebootRequired”的子项,请选中“HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Component Based Servicing \”。如果存在名为“RebootRequired”的子项,请选中“HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ WindowsUpdate \ Auto Update \”。如果值“PendingFileRenameOperations”(如果存在),请选中“HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \”。如果满足任何这些条件,则需要重新启动。 - hoffmanuel
@hoffmanuel RebootPending not RebootRequired“HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Component Based Servicing \”。你能在之前的评论中解决这个错字吗? - Ainullin Damir


“PendingReboot” 模块将所有提到的测试(+ CCM WMI探测)合并到一个方便的cmdlet中,以可靠地检测挂起的重新启动:

# Install
Install-Module -Name PendingReboot

# Run
Test-PendingReboot -Detailed

0
2017-09-24 10:18