Saya memiliki server Windows yang kadang-kadang akan reboot ke mode aman setelah pembaruan. Saya sedang mengerjakan masalah itu tetapi yang benar-benar ingin saya ketahui adalah bagaimana saya dapat memeriksa untuk melihat apakah Windows berjalan dalam mode aman atau tidak.
Idealnya saya ingin memasukkannya ke dalam skrip yang akan mengirim cek pasif ke kotak Nagios kami dengan status.
Apakah ada beberapa variabel lingkungan yang dapat saya gunakan atau beberapa cara untuk mendapatkan informasi ini melalui baris perintah?
Jawaban:
Saya pikir ini melakukan apa yang Anda cari
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394102%28v=vs.85%29.aspx
Nilai pengembalian yang dimungkinkan:
sumber
(gwmi win32_computersystem -Property BootupState).BootupState
Menurut artikel ini , variabel lingkungan yang dipanggil
SAFEBOOT_OPTION
diatur ke salah satuMinimal
atauNetwork
jika sistem dimulai pada Mode Aman atau Mode Aman dengan Jaringan; jika tidak, variabel tidak disetel.Tes pada nilai variabel harus melakukan trik; Namun, perlu diingat bahwa jika sistem benar-benar berjalan dalam Safe Mode, itu tidak akan memiliki jaringan untuk memulai, sehingga melaporkan statusnya bisa ... sulit.
sumber
EDIT: saya salah, saya tidak membaca KB cukup menyeluruh untuk menyadari itu pada dasarnya tidak berguna sebagai jawaban sendiri.
Cara yang lebih berguna untuk menentukan apakah Anda dalam safe mode of not adalah dari : Microsoft® Windows® Internals: Microsoft Windows ServerTM 2003, Windows XP, and Windows 2000oleh Mark E. Russinovich, David A. Solomon .
Ambil yang di atas dan pasangkan dengan yang di bawah ini, dan Anda akan memiliki lokasi registri yang dapat Anda periksa dengan nilai numerik yang dapat Anda terjemahkan menjadi sesuatu yang bermanfaat.
Dari support.microsoft KB berjudul, "Cara menentukan apakah sistem berjalan dalam Mode Aman dari driver perangkat."
sumber
InitSafeBootMode
?HKLM\SYSTEM\CurrentControlSet\SafeBoot\Option
sekali tidak ada pada sistem Mode Non-Aman, tetapi ada pada Mode Aman.Anda juga dapat menjalankan kueri WMI yang disarankan oleh Craig620 langsung dari baris perintah, jika Anda tidak menggunakan PowerShell:
sumber
HKLM \ SYSTEM \ CurrentControlSet \ Control \ SystemStartOptions berisi string dan jika Anda dalam mode aman akan ada "SAFEBOOT: ???" dalam string mana ??? adalah MINIMAL atau JARINGAN. Ini diperbarui pada setiap boot.
sumber