J'ai un serveur Windows qui redémarre parfois en mode sans échec après les mises à jour. Je travaille sur ce problème, mais ce que j'aimerais vraiment savoir, c'est comment puis-je vérifier si Windows fonctionne en mode sans échec ou non.
Idéalement, je voudrais l'intégrer dans un script qui enverrait un chèque passif à notre boîte Nagios avec le statut.
Existe-t-il une variable d'environnement que je peux utiliser ou un moyen d'obtenir ces informations via la ligne de commande?
Réponses:
Je pense que cela fait ce que vous cherchez
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394102%28v=vs.85%29.aspx
Valeurs de retour possibles:
la source
(gwmi win32_computersystem -Property BootupState).BootupState
Selon cet article , une variable d'environnement appelée
SAFEBOOT_OPTION
est définie surMinimal
ouNetwork
si le système est démarré en mode sans échec ou en mode sans échec avec mise en réseau; sinon, la variable n'est pas définie.Un test sur la valeur de la variable devrait faire l'affaire; Cependant, gardez à l'esprit que si le système fonctionne réellement en mode sans échec, il n'aura pas de réseau pour commencer, donc signaler son état pourrait être ... difficile.
la source
EDIT: ma mauvaise, je n'ai pas lu le KB suffisamment à fond pour réaliser qu'il est fondamentalement inutile en tant que réponse en soi.
Un moyen plus utile de déterminer si vous êtes en mode sans échec est de : Microsoft® Windows® Internals: Microsoft Windows ServerTM 2003, Windows XP, and Windows 2000par Mark E. Russinovich, David A. Solomon .
Prenez ce qui précède et associez-le à ce qui suit, et vous aurez un emplacement de registre que vous pouvez vérifier avec une valeur numérique que vous pouvez traduire en quelque chose d'utile.
À partir de la base de connaissances support.microsoft intitulée «Comment déterminer si le système s'exécute en mode sans échec à partir d'un pilote de périphérique».
la source
InitSafeBootMode
?HKLM\SYSTEM\CurrentControlSet\SafeBoot\Option
n'existe pas du tout sur un système sans mode sans échec, mais elle existe sur un système en mode sans échec.Vous pouvez également exécuter la requête WMI suggérée par Craig620 directement à partir de la ligne de commande, si vous n'utilisez pas PowerShell:
la source
HKLM \ SYSTEM \ CurrentControlSet \ Control \ SystemStartOptions contient une chaîne et si vous êtes en mode sans échec, il y aura un "SAFEBOOT: ???" dans la chaîne où ??? est MINIMAL ou RÉSEAU. Ceci est mis à jour à chaque démarrage.
la source