У меня есть сервер Windows, который после перезагрузки иногда перезагружается в безопасном режиме. Я работаю над этой проблемой, но мне бы очень хотелось узнать, как я могу проверить, работает ли Windows в безопасном режиме или нет.
В идеале я хотел бы включить его в скрипт, который бы отправил пассивную проверку на наш ящик Nagios со статусом.
Есть ли переменная окружения, которую я могу использовать, или какой-нибудь способ получить эту информацию через командную строку?
Ответы:
Я думаю, что это делает то, что вы ищете
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394102%28v=vs.85%29.aspx
Возможные возвращаемые значения:
источник
(gwmi win32_computersystem -Property BootupState).BootupState
В соответствии с этой статьей , переменная окружения называется
SAFEBOOT_OPTION
либо,Minimal
либоNetwork
если система запущена в безопасном режиме или в безопасном режиме с сетевым подключением; в противном случае переменная не установлена.Проверка значения переменной должна помочь; однако имейте в виду, что если система действительно работает в безопасном режиме, у нее не будет сети для начала, поэтому сообщать о ее состоянии может быть ... сложно.
источник
РЕДАКТИРОВАТЬ: мой плохой, я не прочитал КБ достаточно тщательно, чтобы понять, что он в принципе бесполезен как ответ сам по себе.
Более полезный способ определить , если вы находитесь в безопасном режиме не из : Microsoft® Windows® Internals: Microsoft Windows ServerTM 2003, Windows XP, and Windows 2000от Mark E. Руссиновичем, Дэвид А. Соломона .
Возьмите вышеизложенное и соедините с нижеследующим, и у вас будет место в реестре, которое вы можете проверить с помощью числового значения, которое вы можете перевести во что-то полезное.
Из раздела support.microsoft KB под названием «Как определить, работает ли система в безопасном режиме из драйвера устройства».
источник
InitSafeBootMode
?HKLM\SYSTEM\CurrentControlSet\SafeBoot\Option
не существует в системе без безопасного режима, но он существует в безопасном режиме.Вы также можете запустить запрос WMI, предложенный Craig620, непосредственно из командной строки, если вы не используете PowerShell:
источник
HKLM \ SYSTEM \ CurrentControlSet \ Control \ SystemStartOptions содержит строку, и если вы находитесь в безопасном режиме, будет "SAFEBOOT: ???" в строке где ??? МИНИМАЛЬНЫЙ или СЕТЬ. Это обновляется при каждой загрузке.
источник