Windows Server 2008 R2 中的服务器管理器偶尔会显示警告:Console cannot refresh until computer is restarted
,并且在这种状态下,您不能使用服务器管理器添加或删除角色/功能。
很明显,这与需要重新启动才能完成的角色/更新安装过程有关(例如,替换正在使用的文件或类似的东西)。如何更准确地确定此状态的原因?
有时,在多用户(或者我应该说是多管理员)环境中,您不知道您的同事做了哪些更改,最好知道为什么要重新启动服务器。
Windows Server 2008 R2 中的服务器管理器偶尔会显示警告:Console cannot refresh until computer is restarted
,并且在这种状态下,您不能使用服务器管理器添加或删除角色/功能。
很明显,这与需要重新启动才能完成的角色/更新安装过程有关(例如,替换正在使用的文件或类似的东西)。如何更准确地确定此状态的原因?
有时,在多用户(或者我应该说是多管理员)环境中,您不知道您的同事做了哪些更改,最好知道为什么要重新启动服务器。
这实际上是不可能的,至少不能达到您想要的详细程度,因为 Windows 根本不会记录为什么需要重新启动的详细程度。此外,正如我在上面的评论中所说,这似乎指出了您应该解决的环境中一些非常严重的潜在问题——缺乏变更控制和糟糕的管理实践。
话虽如此,Windows 会在注册表中跟踪挂起的重新启动状态,Technet 的 Scripting Guy 博客上有一个由两部分组成的博客系列,介绍如何使用 PowerShell 来确定此状态,它还方便地向您展示了在哪里手动查找这些标志. (他们在注册表中,惊喜,惊喜)。
从第一部分:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager
,如果有一个名为 的值PendingFileRenameOperations
,它将包含一个需要在重新启动时重命名的文件列表。HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update
,如果有一个名为 的值RebootRequired
,则重新启动处于挂起状态。HKLM\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending
System Center Configuration Manager 2012 must be installed on the client. When it’s installed, the ‘ROOT\ccm\ClientSDK’ WMI class will be available. This class has a method called DetermineIfRebootPending.
如果您更喜欢只获取 PowerShell 脚本,请参阅第 II 部分。
https://blogs.technet.microsoft.com/heyscriptingguy/2013/06/11/determine-pending-reboot-statuspowershell-style-part-2/
这是更新的链接和脚本
https://gallery.technet.microsoft.com/scriptcenter/Get-PendingReboot-Query-bdb79542