विंडोज 10 में, मैं जानना चाहूंगा कि मैं एक स्क्रिप्ट में कैसे बता सकता हूं कि क्या सिस्टम बूट हुआ क्योंकि यह एक वेक-ऑन-लैन (WoL) पैकेट प्राप्त करके चालू किया गया था, या क्योंकि यह पावर बटन को धक्का देने के कारण चालू किया गया था ।
मुझे Win32_ComputerSystem वर्ग का WakeUpType गुण मिला । जिसे "सिस्टम को पावर अप करने के लिए कारण" घटना को वापस करने के लिए प्रलेखित किया गया है। 9 संभावित रिटर्न मान हैं, उनमें से एक "5" (जिसका अर्थ है "लैन रिमोट")।
दुर्भाग्य से, मेरे सिस्टम पर यह हमेशा "6" (अर्थ "पावर स्विच") लौटाता है:
PS C:\WINDOWS\system32> echo $(Get-WmiObject -class win32_computersystem).wakeuptype
6
मैंने देखा कि सिस्टम को सोने और जागने के बाद WoL का उपयोग करके, विंडोज सिस्टम में एक घटना को स्रोत "पावर-ट्रबलशूटर" और इवेंट ID 1 के साथ पोस्ट करता है, जिसमें टेक्स्ट होता है:
वेक सोर्स: डिवाइस -इंटेल (R) 82579V गीगाबिट नेटवर्क कनेक्शन
इसके अलावा, powercfg /lastwake
एनआईसी को जागने के कारण के रूप में रिपोर्ट करता है। तो, कम से कम जब नींद से जागते हैं विंडोज यह निर्धारित करने में सक्षम है कि यह वाह के पैकेट के कारण जाग गया, भले ही उस मामले में वेकपाइप संपत्ति अभी भी "6" (पावर स्विच) लौटाती है।
दुर्भाग्य से, जब सिस्टम को S5 राज्य में एक WoL पैकेट प्राप्त होता है, तो यह ठीक से पावर और बूट करेगा, लेकिन मैं यह नहीं बता सकता कि यह WoL के कारण बूट हुआ। powercfg /lastwake
पॉवर बटन को पुश करने के कारण S5 से सिस्टम की शक्तियाँ होने पर ठीक वैसा ही आउटपुट दिखाता है जैसा कि सिस्टम को होता है:
C:\WINDOWS\system32>powercfg /lastwake
Wake History Count - 0
मैं किसी भी बिजली की स्थिति (S5 तक) से मज़बूती से कैसे बता सकता हूं, कि यह सिस्टम WoL की वजह से / जाग गया?