Mam serwer Windows, który czasami aktualizuje się ponownie w trybie awaryjnym po aktualizacji. Pracuję nad tym problemem, ale tak naprawdę chciałbym wiedzieć, jak mogę sprawdzić, czy system Windows działa w trybie awaryjnym, czy nie.
Idealnie chciałbym włączyć go do skryptu, który wysyłałby pasywne sprawdzenie do naszego pola Nagios ze statusem.
Czy jest jakaś zmienna środowiskowa, której mogę użyć, lub jakiś sposób na uzyskanie tych informacji za pomocą wiersza poleceń?
Odpowiedzi:
Myślę, że to robi to, czego szukasz
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394102%28v=vs.85%29.aspx
Możliwe zwracane wartości:
źródło
(gwmi win32_computersystem -Property BootupState).BootupState
Zgodnie z tym artykułem , zmienna środowiskowa nazywany
SAFEBOOT_OPTION
jest ustawiony alboMinimal
alboNetwork
, jeżeli system zostanie uruchomiony w trybie awaryjnym lub w trybie awaryjnym z obsługą sieci; w przeciwnym razie zmienna nie jest ustawiona.Test wartości zmiennej powinien załatwić sprawę; Należy jednak pamiętać, że jeśli system faktycznie działa w trybie awaryjnym, nie będzie miał na początku sieci, więc zgłoszenie jego statusu może być ... trudne.
źródło
EDYCJA: moje złe, nie przeczytałem KB wystarczająco dokładnie, aby zdać sobie sprawę, że jest to w zasadzie bezużyteczne jako odpowiedź sama w sobie.
Bardziej przydatny sposób ustalić, czy jesteś w trybie awaryjnym nie jest od : Microsoft® Windows® Internals: Microsoft Windows ServerTM 2003, Windows XP, and Windows 2000przez Mark E. Russinovichem, David A. Salomona .
Weź powyższe i sparuj z poniższym, a będziesz mieć lokalizację rejestru, którą możesz sprawdzić za pomocą wartości liczbowej, którą możesz przełożyć na coś użytecznego.
Na stronie support.microsoft KB zatytułowanej „Jak ustalić, czy system działa w trybie awaryjnym ze sterownika urządzenia”.
źródło
InitSafeBootMode
?HKLM\SYSTEM\CurrentControlSet\SafeBoot\Option
ogóle nie istnieje w systemie innym niż tryb awaryjny, ale działa w trybie awaryjnym.Możesz również uruchomić zapytanie WMI sugerowane przez Craig620 bezpośrednio z wiersza poleceń, jeśli nie używasz PowerShell:
źródło
HKLM \ SYSTEM \ CurrentControlSet \ Control \ SystemStartOptions zawiera ciąg znaków, a jeśli jesteś w trybie awaryjnym, pojawi się komunikat „SAFEBOOT: ???” w ciągu gdzie? jest MINIMALNY lub SIEĆ. To jest aktualizowane przy każdym uruchomieniu.
źródło