अगर विंडोज सेफ मोड में चल रहा है तो मैं कैसे बता सकता हूं?


14

मेरे पास एक विंडोज सर्वर है जो कभी-कभी अपडेट के बाद सुरक्षित मोड में रीबूट होगा। मैं उस मुद्दे पर काम कर रहा हूं, लेकिन मैं वास्तव में जानना चाहता हूं कि मैं कैसे देख सकता हूं कि विंडोज सुरक्षित मोड में चल रहा है या नहीं।

आदर्श रूप में मैं इसे एक स्क्रिप्ट में शामिल करना चाहूंगा जो स्थिति के साथ हमारे नागियोस बॉक्स में एक निष्क्रिय चेक भेजेगा।

क्या कमांड लाइन के माध्यम से इस जानकारी को प्राप्त करने के लिए कुछ पर्यावरणीय चर का उपयोग किया जा सकता है?


1
विंडोज पर कोई "एकल उपयोगकर्ता मोड" नहीं है ... क्या आप सुरक्षित मोड के बारे में बात कर रहे हैं?
मैसिमो

1
अद्यतन प्रश्न और "एकल उपयोगकर्ता मोड" को "सुरक्षित मोड" में बदल दिया - मेरी माफी
cwd

सवाल वास्तव में दिलचस्प है, मैं थोड़ा सा घूम गया और कोई उचित तरीका नहीं मिल सका (जैसे, "बिना डिवाइस ड्राइवर के") प्रोग्रामेटिक रूप से जाँचने के लिए कि क्या कोई सिस्टम सुरक्षित मोड में चल रहा है ... मैं upvoting हूँ, लेकिन कृपया @ joeqwerty के जवाब को अस्वीकार कर दें, क्योंकि वह टर्मिनल सर्विसेज के बारे में बात कर रहा था।
मासिमो

3
आप यह पूरी तरह से गलत कर रहे हैं। यदि आपके पास एक सर्वर है जो कभी-कभी सुरक्षित मोड में बूट होता है, तो आपको मूल कारण की तलाश में होना चाहिए, न कि लक्षण का इलाज करने का तरीका। सर्वर केवल एक गंभीर दुर्घटना के बाद ऐसा करेगा। पता लगाएँ कि दुर्घटनाओं का कारण क्या है और इसे ठीक करें।
जॉन गार्डनियर्स

2
@ जॉनगार्डियर्स, ईमानदार होने के लिए, उन्होंने कहा कि वह इस मुद्दे पर काम कर रहे हैं ...
मैसिमो

जवाबों:


23

मुझे लगता है कि यह वही करता है जो आप खोज रहे हैं

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

संभावित वापसी मान:

सामान्य बूट
असफल-सुरक्षित बूट
नेटवर्क बूट के साथ विफल-सुरक्षित

Niiiiiiiiice ...
मैसिमो

दूसरा तरीका रखें:(gwmi win32_computersystem -Property BootupState).BootupState
जयकुल

8

इस अनुच्छेद के अनुसार , एक पर्यावरण चर कहा जाता SAFEBOOT_OPTIONहै Minimalया Networkतो सिस्टम को सुरक्षित मोड में या नेटवर्किंग के साथ सेफ मोड में शुरू किया जाता है; अन्यथा, चर अप्रभावित है।

चर के मूल्य पर एक परीक्षण चाल करना चाहिए; हालाँकि, ध्यान रखें कि यदि सिस्टम वास्तव में Safe Mode में चल रहा है, तो उसके पास शुरू करने के लिए कोई नेटवर्किंग नहीं होगी, इसलिए इसकी स्थिति की रिपोर्ट करना ... कठिन हो सकता है।


एक त्वरित सुरक्षित मोड रिबूट में भी इसकी पुष्टि की।
मासिमो

3

संपादित करें: मेरा बुरा, मैंने केबी को पूरी तरह से महसूस करने के लिए पर्याप्त रूप से नहीं पढ़ा कि यह मूल रूप से अपने आप में एक उत्तर के रूप में बेकार है।

निर्धारित करने के लिए एक अधिक उपयोगी तरीका अगर आप नहीं की सुरक्षित मोड में से है : Microsoft® Windows® Internals: Microsoft Windows ServerTM 2003, Windows XP, and Windows 2000द्वारा मार्क ई Russinovich, डेविड ए सुलैमान

विंडोज कर्नेल बूट के दौरान सुरक्षित मोड स्विच की तलाश में बूट पैरामीटर स्कैन करता है और आंतरिक चर InitSafeBootMode को एक मान पर सेट करता है जो उन स्विच को दर्शाता है जो कर्नेल ढूँढता है। कर्नेल InitSafeBootMode मान को रजिस्ट्री मान HKLM \ SYSTEM \ CurrentControlSet \ SafeBoot \ Option \ Option मान में लिखता है ताकि उपयोगकर्ता-मोड घटक, जैसे SCM, यह निर्धारित कर सके कि सिस्टम किस बूट मोड में है।

ऊपर और नीचे के साथ जोड़ी ले लो, और आपके पास एक रजिस्ट्री स्थान होगा जिसे आप संख्यात्मक मान से जांच सकते हैं कि आप कुछ उपयोगी में अनुवाद कर सकते हैं।

Support.microsoft KB से, "डिवाइस ड्राइवर से सिस्टम सुरक्षित मोड में चल रहा है या नहीं, इसका निर्धारण कैसे करें" शीर्षक।

Windows OS कर्नेल एक पॉइंटर को ULong वैरिएबल में एक्सपोर्ट करता है जिसे InitSafeBootMode नाम दिया गया है। इस चर में सेफ मोड सेटिंग्स हैं।

डिवाइस ड्राइवर यह निर्धारित कर सकता है कि सिस्टम InitSafeBootMode चर के मान से सुरक्षित मोड में चल रहा है या नहीं। 0 के मान का अर्थ है कि सिस्टम सेफ़ मोड में नहीं चल रहा है।

निम्न तालिका अन्य मूल्यों के लिए मोड को सूचीबद्ध करती है।
मान मोड
1 SAFEBOOT_MINIMAL
2 SAFEBOOT_NETWORK
3 * SAFEBOOT_DSREPAIR
* नोट 3 का मान केवल Windows डोमेन नियंत्रकों पर लागू होता है।


कमांड लाइन के माध्यम से इसे जांचने का कोई तरीका या क्या मुझे एक आवेदन लिखने की आवश्यकता होगी जो जांच कर सके InitSafeBootMode?
cwd

यही कारण है कि मैं अपनी टिप्पणी के साथ "मुझे कोई उचित तरीका नहीं मिल रहा था" ... भले ही आप डिवाइस ड्राइवर को यह जांचने के लिए लिख सकें कि, यह लक्ष्य प्रणाली पर चलने के लिए काफी मुश्किल हो जाएगा ।
मासिमो

@cwd आपको वास्तव में कर्नेल-मोड ड्राइवर की आवश्यकता होगी। और इसे स्थापित करने के लिए। और सुरक्षित मोड में भी चल रहा है। और फिर ड्राइवर के साथ बात करने और उसकी स्थिति की रिपोर्ट करने के लिए एक आवेदन। यह वास्तव में वास्तव में जल्दी बदसूरत हो जाएगा।
मासिमो

1
@ जब आप वहाँ जाते हैं, तो मैं जब तक केबी के लिंक को नहीं ढूँढ लेता, काफी बारीकी से जाँच नहीं करता। उत्तर में आपके लिए उपयोगी जानकारी होनी चाहिए।
होपलेस एन ०० बी

@ HopelessN00b की पुष्टि की (मैं वास्तव में जाँच करने के लिए सुरक्षित मोड में रीबूट किया गया)। HKLM\SYSTEM\CurrentControlSet\SafeBoot\Optionगैर-सुरक्षित-मोड प्रणाली पर कुंजी बिल्कुल भी मौजूद नहीं है, लेकिन यह एक सुरक्षित मोड एक पर करता है।
मासिमो

3

यदि आप PowerShell का उपयोग नहीं कर रहे हैं, तो आप कमांड लाइन से सीधे Craig620 द्वारा सुझाई गई WMI क्वेरी भी चला सकते हैं :

> wmic COMPUTERSYSTEM GET BootupState

BootupState
Normal boot

1

HKLM \ SYSTEM \ CurrentControlSet \ Control \ SystemStartOptions में एक स्ट्रिंग है और यदि आप सुरक्षित मोड में हैं, तो "SAFEBOOT: ???" होगा। स्ट्रिंग के भीतर कहाँ ??? न्यूनतम या नेटवर्क है। यह प्रत्येक बूट पर अद्यतन हो जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.