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?
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:
[.____
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.
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
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.