मैं एक ही समस्या है, मैं सब कुछ खत्म हो खोज की, लेकिन कुछ भी उपयोगी नहीं मिला।
अंततः मैं सिर्फ अलग अलग चीजों के साथ चारों ओर खिलवाड़ शुरू कर दिया मैं सोच सकता है। मैं दो कामकाज के बारे में सोच सकता हूं हमारी समस्या है।
ईवेंट दर्शक आपको बता सकता है कि शट डाउन निर्धारित किया गया है, लेकिन जब यह निर्धारित नहीं किया गया था।
एक विचार है कि हालिया सिस्टम शट डाउन, सबसे हालिया अनुसूचित शटडाउन और शेड्यूल किए गए शटडाउन का सबसे हालिया रद्दीकरण के लिए ईवेंट व्यूअर से पूछताछ करें। यदि निर्धारित शटडाउन सबसे हालिया रद्दीकरण या शटडाउन से अधिक हालिया है तो प्रगति पर एक है। ईवेंट ID कर रहे हैं: एक शुरू कर दिया अनुसूचित शट डाउन के लिए 1074, 1075 एक रद्द अनुसूचित शट डाउन, विंडोज लॉग्स के तहत के लिए/प्रणाली 12 प्रणाली के लिए प्रणाली बंद के लिए 13 से शुरू (सभी Windows लॉग्स/प्रणाली के तहत)
मैं बैच फ़ाइल में ऐसा करने के लिए बहुत आलसी था, मुझे पता है कि यह संभव है हालांकि।
तो मैं यही कर रहा हूं: शटडाउन शेड्यूल करने की बजाय, बस इसे रद्द करने का प्रयास करें। यदि कोई शट डाउन प्रगति पर नहीं है तो यह एक त्रुटि फेंक देगा (सिस्टम शट डाउन को रद्द करने में असमर्थ क्योंकि कोई शटडाउन प्रगति पर नहीं था। (1116))। एक शटडाउन शेड्यूल करके उपयोगकर्ता को फिक्र करने से मुझे लगता है कि बहुत बेहतर है।
यहां एक साधारण ऑटो शट डाउन स्क्रिप्ट के लिए मैंने जो कोड लिखा था, उसकी प्रतिलिपि है, यह एक निर्धारित शट डाउन को रद्द करने और शुरू करने के बीच टॉगल करता है।
@echo off
shutdown /a
if errorlevel 1 call:shutdown
goto end
:shutdown
set /p choice=Shutdown in how many minutes?
set /a mod=60
set /a mod*=%choice%
shutdown /s /t %mod%
:end
संपादित - मैं इस जवाब की समीक्षा कर रहा हूँ के रूप में मैं जोड़ने के लिए अधिक जानकारी है।
उपरोक्त समाधान पता लगाएगा कि शट डाउन को/t तर्क का उपयोग करके shutdown.exe आदेश के माध्यम से निर्धारित किया गया है या नहीं।
यदि आपको यह निर्धारित करने की आवश्यकता है कि विंडोज़ ने शटडाउन शेड्यूल किया है (क्योंकि यह कुछ विंडोज अपडेट के बाद स्वचालित रूप से होता है) तो एक रजिस्ट्री प्रविष्टि है जिसे आप क्वेरी कर सकते हैं। नीचे PowerShell में है, लेकिन आप ऐसा करने के लिए बैच फ़ाइल लिख सकते हैं।
Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending'
नोट: यह सच नहीं लौटेगा अगर में एक रिबूट shutdown.exe का उपयोग कर अनुसूचित, यह केवल सच वापस आ जाएगी अगर विंडोज कहते हैं आपके कंप्यूटर की जरूरत रीबूट कर दिया है।
हाँ, दुर्भाग्य से कुछ तरीके हैं और अब तक मुझे पता नहीं चला है कि "शट डाउन/आर/टी 60" कमांड कैसे शेड्यूल करता है। यह एक निर्धारित कार्य प्रतीत नहीं होता है - यह शायद कुछ कम स्तर है जो एक स्पष्ट एपीआई के बिना पता लगाने में मुश्किल बनाता है :( – Ificator