如何判断 Windows 是否在安全模式下运行?

cwd*_*cwd 14 windows windows-server-2003 command-line-interface nagios

我有一个 Windows 服务器,它有时会在更新后重新启动到安全模式。我正在解决这个问题,但我真正想知道的是如何检查 Windows 是否在安全模式下运行。

理想情况下,我想将它合并到一个脚本中,该脚本将向我们的 Nagios 框发送带有状态的被动检查。

是否有一些我可以使用的环境变量或某种方式通过命令行获取此信息?

Cla*_*ton 24

我认为这可以满足您的要求

PS C:\> gwmi win32_computersystem | select BootupState

BootupState
-----------
Normal boot
Run Code Online (Sandbox Code Playgroud)

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

可能的返回值:

正常开机
故障安全启动
网络启动故障安全


Mas*_*imo 9

根据这篇文章,叫做环境变量SAFEBOOT_OPTION被设置为MinimalNetwork系统是否在安全模式或带网络安全模式启动; 否则,变量未设置。

对变量值的测试应该可以解决问题;但是,请记住,如果系统实际上是在安全模式下运行的,则它开始时将没有网络,因此报告其状态可能......很困难。


Mas*_*imo 6

如果您不使用 PowerShell,您还可以直接从命令行运行Craig620建议的 WMI 查询:

> wmic COMPUTERSYSTEM GET BootupState

BootupState
Normal boot
Run Code Online (Sandbox Code Playgroud)