web-dev-qa-db-fra.com

Comment puis-je dire si Windows fonctionne en mode sans échec?

J'ai un serveur Windows qui redémarre parfois en mode sans échec après des 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 à un script qui enverrait un chèque passif à notre boîte Nagios avec le statut.

Y a-t-il une variable environnementale que je peux utiliser ou un moyen d'obtenir ces informations via la ligne de commande?

14
cwd

Je pense que cela fait ce que vous recherchez

PS C:\> gwmi win32_computersystem | select BootupState

BootupState
-----------
Normal boot

http://msdn.microsoft.com/en-us/library/windows/desktop/aa394102%28v=vs.85%29.aspx

Valeurs de retour possibles:

[.____
24
Clayton

Selon - cet article , une variable d'environnement appelée SAFEBOOT_OPTION est défini sur Minimal ou Network si le système est démarré en mode sans échec ou en mode sans échec avec la mise en réseau; Sinon, la variable est non définie.

Un test de la valeur de la variable devrait faire l'affaire; Cependant, gardez à l'esprit que si le système est en train de fonctionner en mode sans échec, cela n'aura pas de réseautage pour commencer, alors signaler son statut pourrait être ... difficile.

9
Massimo

Vous pouvez également exécuter la requête WMI suggérée par CRAG62 directement à partir de la ligne de commande, si vous n'utilisez pas PowerShell:

> wmic COMPUTERSYSTEM GET BootupState

BootupState
Normal boot
4
Massimo

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 sur chaque démarrage.

1
Allan