更新後にセーフモードで再起動することがあるWindowsサーバーがあります。私はその問題に取り組んでいますが、本当に知りたいのは、Windowsがセーフモードで実行されているかどうかを確認する方法です。
理想的には、状態とともにパッシブチェックをNagiosボックスに送信するスクリプトにそれを組み込みたいと思います。
私が使用できる環境変数や、コマンドラインからこの情報を取得する方法はありますか?
更新後にセーフモードで再起動することがあるWindowsサーバーがあります。私はその問題に取り組んでいますが、本当に知りたいのは、Windowsがセーフモードで実行されているかどうかを確認する方法です。
理想的には、状態とともにパッシブチェックをNagiosボックスに送信するスクリプトにそれを組み込みたいと思います。
私が使用できる環境変数や、コマンドラインからこの情報を取得する方法はありますか?
回答:
これはあなたが探しているものだと思う
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
可能な戻り値:
普通のブーツ フェイルセーフブート ネットワークブートによるフェールセーフ
(gwmi win32_computersystem -Property BootupState).BootupState
編集:私の悪い、私はそれが基本的にそれ自体では答えとして役に立たないことを認識するのに十分なほどKBを読みませんでした。
あなたがいないのセーフモードにいるかどうかを判断するために、より便利な方法があるから:Microsoft® Windows® Internals: Microsoft Windows ServerTM 2003, Windows XP, and Windows 2000によってマークE. Russinovich氏、デビッドA.ソロモン。
Windowsカーネルは、ブート中の早い段階でセーフモードスイッチを検索してブートパラメーターをスキャンし、内部変数InitSafeBootModeを、カーネルが検出したスイッチを反映する値に設定します。カーネルはInitSafeBootMode値をレジストリ値HKLM \ SYSTEM \ CurrentControlSet \ SafeBoot \ Option \ Option Valueに書き込み、SCMなどのユーザーモードコンポーネントがシステムがどのブートモードにあるかを判断できるようにします。
上記を取り、以下と組み合わせてください。レジストリの場所があり、数値を使って確認できるので、何か便利なものに変換できます。
「システムがデバイスドライバーからセーフモードで実行されているかどうかを確認する方法」というタイトルのsupport.microsoft KBから。
Windows OSカーネルは、InitSafeBootModeという名前のULONG変数へのポインターをエクスポートします。この変数には、セーフモード設定が含まれています。
デバイスドライバーは、InitSafeBootMode変数の値によって、システムがセーフモードで実行されているかどうかを判断できます。値0は、システムがセーフモードで実行されていないことを意味します。
次の表に、他の値のモードを示します。
値 モード
1 SAFEBOOT_MINIMAL
2 SAFEBOOT_NETWORK
3 * SAFEBOOT_DSREPAIR
*注値3は、Windowsドメインコントローラーにのみ適用されます。
InitSafeBootMode
ますか?
HKLM\SYSTEM\CurrentControlSet\SafeBoot\Option
は非セーフモードシステムにはまったく存在しませんが、セーフモードシステムには存在します。