Ich habe einen Windows-Server, der nach Updates manchmal im abgesicherten Modus neu startet. Ich arbeite an diesem Problem, aber ich möchte wirklich wissen, wie ich überprüfen kann, ob Windows im abgesicherten Modus ausgeführt wird oder nicht.
Idealerweise würde ich es gerne in ein Skript integrieren, das einen passiven Scheck an unsere Nagios-Box mit dem Status sendet.
Gibt es eine Umgebungsvariable, mit der ich diese Informationen über die Befehlszeile abrufen kann?
Antworten:
Ich denke, das macht das, wonach Sie suchen
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394102%28v=vs.85%29.aspx
Mögliche Rückgabewerte:
quelle
(gwmi win32_computersystem -Property BootupState).BootupState
Gemäß diesem Artikel wird eine aufgerufene Umgebungsvariable
SAFEBOOT_OPTION
entweder aufMinimal
oder auf gesetzt,Network
wenn das System im abgesicherten Modus oder im abgesicherten Modus mit Netzwerk gestartet wird. Andernfalls ist die Variable nicht gesetzt.Ein Test auf den Wert der Variablen sollte den Trick machen; Bedenken Sie jedoch, dass das System, wenn es tatsächlich im abgesicherten Modus ausgeführt wird, zunächst keine Netzwerkverbindung hat, sodass es schwierig sein kann, seinen Status zu melden.
quelle
EDIT: Meine Güte, ich habe die KB nicht gründlich genug gelesen, um zu erkennen, dass sie im Grunde genommen als Antwort für sich genommen unbrauchbar ist.
Ein nützlicher Weg , um festzustellen , ob Sie im abgesicherten Modus nicht sind , sind aus : Microsoft® Windows® Internals: Microsoft Windows ServerTM 2003, Windows XP, and Windows 2000von Mark E. Russinovich, David A. Solomon .
Nehmen Sie das Obige und kombinieren Sie es mit dem Folgenden. Sie erhalten einen Registrierungsspeicherort, den Sie mit einem numerischen Wert überprüfen können, den Sie in etwas Nützliches übersetzen können.
In der KB "support.microsoft" mit dem Titel "Ermitteln, ob das System über einen Gerätetreiber im abgesicherten Modus ausgeführt wird".
quelle
InitSafeBootMode
?HKLM\SYSTEM\CurrentControlSet\SafeBoot\Option
ist in einem System ohne abgesicherten Modus überhaupt nicht vorhanden, in einem System mit abgesicherten Modus jedoch nicht.Sie können die von Craig620 vorgeschlagene WMI-Abfrage auch direkt über die Befehlszeile ausführen , wenn Sie PowerShell nicht verwenden:
quelle
HKLM \ SYSTEM \ CurrentControlSet \ Control \ SystemStartOptions enthält eine Zeichenfolge. Wenn Sie sich im abgesicherten Modus befinden, wird ein "SAFEBOOT: ???" innerhalb der Zeichenfolge wo ??? ist MINIMAL oder NETZWERK. Dies wird bei jedem Start aktualisiert.
quelle