Диспетчер сервера в 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, это здесь, во второй части..