Windows Server 2008 R2 中的服务器管理器偶尔会显示警告:Console cannot refresh until computer is restarted
,在这种状态下您无法使用服务器管理器添加或删除角色/功能。
很明显,这与角色/更新安装过程有关,这些过程需要重新启动才能完成(例如替换正在使用的文件或类似操作)。我如何才能更准确地确定此状态的原因?
有时,在多用户(或者应该说多管理员)环境中,您不知道同事做了哪些更改,因此最好知道为什么要重新启动服务器。
答案1
这实际上是不可能的,至少不能达到您想要的详细程度,因为 Windows 根本不会记录需要重新启动的原因的详细程度。此外,正如我在上面的评论中所说,这似乎指出了您的环境中一些相当严重的潜在问题,您应该解决这些问题 - 缺乏变更控制和糟糕的管理实践。
话虽如此,Windows 会在注册表中跟踪待定的重启状态,Technet 的 Scripting Guy 博客上有两部分博客系列介绍如何使用 PowerShell 确定此状态,这些博客系列还方便地向您展示了在哪里手动查找这些标志。(令人惊讶的是,它们在注册表中)。
- 注册表:PendingFileRenameOperations
- 在 下
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager
,如果有一个名为 的值PendingFileRenameOperations
,它将包含重新启动时需要重命名的文件列表。
- 在 下
- 注册表:WindowsUpdate\Auto Update
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update
,如果有一个名为的值RebootRequired
,则表示重新启动正在等待。
- 注册表:基于组件的服务
- 寻找钥匙
HKLM\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending
- 寻找钥匙
- WMI:CCM_ClientUtilities(仅限 System Center Configuration Manager 客户端)
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.