"Stopping" या "Starting" स्थिति पर अटके Windows सर्विस प्रोसेस को मैन्युअली कैसे किल करें? अधिकांश Windows एडमिनिस्ट्रेटर्स ने उस समस्या का सामना किया है जब वे सर्विस शुरू/रोक/पुनः शुरू करने का प्रयास करते हैं, लेकिन यह Stopping (या Starting) स्थिति के साथ अटक जाती है। आप सर्विस मैनेजमेंट कंसोल (services.msc) से इस सर्विस को रोक नहीं पाएंगे, क्योंकि इस सर्विस के लिए सभी कंट्रोल बटन निष्क्रिय (ग्रे आउट) हो जाते हैं। सबसे आसान तरीका Windows को रीस्टार्ट करना है, लेकिन यह हमेशा स्वीकार्य नहीं होता। आइए वैकल्पिक तरीकों को देखें, जो सिस्टम रीबूट के बिना अटकी Windows सर्विस या प्रोसेस को जबरन किल करने की अनुमति देते हैं।

यदि सर्विस को रोकने का प्रयास करने के 30 सेकंड के भीतर यह नहीं रुकती है, तो Windows यह संदेश प्रदर्शित करता है:
Windows Could not stop the xxxxxx service on Local Computer Error 1053: The service did not respond in a timely fashion.
Service Control Manager द्वारा सर्विस के शुरू या रुकने की प्रतीक्षा करने वाला टाइमआउट ServicesPipeTimeout रजिस्ट्री पैरामीटर का उपयोग करके बदला जा सकता है। यदि सर्विस निर्दिष्ट टाइमआउट के भीतर शुरू नहीं होती है, तो Windows इवेंट व्यूअर में त्रुटि भेजता है (Event ID: 7000, 7009, 7011, a timeout was reached 30000 milliseconds)। आप इस टाइमआउट को बढ़ाकर, उदाहरण के लिए, 60 सेकंड कर सकते हैं:
reg add HKLM\SYSTEM\CurrentControlSet\Control /v ServicesPipeTimeout /t REG_SZ /d 600000 /f
यह उन भारी सर्विसेज को शुरू/रोकते समय उपयोगी होता है जिनके पास सभी प्रोसेसेज को ठीक से समाप्त करने और फाइलें बंद करने के लिए पर्याप्त समय नहीं होता (उदाहरण के लिए, MS SQL Server)।
यदि आप कमांड प्रॉम्प्ट से ऐसी सर्विस को रोकने का प्रयास करते हैं: net stop wuauserv, तो एक संदेश दिखाई देता है:
The service is starting or stopping. Please try again later.

या:
Windows could not stop the Service on Local Computer. [SC] ControlService Error 1061: The service cannot accept control messages at this time.
TaskKill का उपयोग करके अटकी Windows सर्विस को जबरन किल कैसे करें?
अटकी सर्विस को रोकने का सबसे आसान तरीका बिल्ट-इन taskkill कमांड-लाइन टूल का उपयोग करना है। सबसे पहले, आपको सर्विस का PID (प्रोसेस आइडेंटिफायर) ढूंढना होगा। उदाहरण के रूप में, आइए Windows Update सर्विस लें। इसका सिस्टम नाम wuauserv है (आप services.msc कंसोल में सर्विस प्रॉपर्टीज में नाम जांच सकते हैं)।
सर्वर रीस्टार्ट होने पर Windows Modules Installer सर्विस के हैंग होना बहुत आम है, विशेष रूप से Windows Server 2012 R2 और 2016 पर अपडेट इंस्टॉल करने के बाद। महत्वपूर्ण. सावधान रहें। महत्वपूर्ण Windows सर्विसेज की जबरन समाप्ति से BSOD या अप्रत्याशित सिस्टम रीस्टार्ट हो सकता है।
एलिवेटेड कमांड प्रॉम्प्ट में यह कमांड चलाएं (यह महत्वपूर्ण है, अन्यथा एक्सेस डिनाइड त्रुटि दिखाई देगी):
sc queryex wuauserv
हमारे मामले में, wuauserv सर्विस का PID 9186 है।
PID 9168 वाले अटके प्रोसेस को जबरन किल करने के लिए, कमांड चलाएं:
taskkill /PID 9168 /F

SUCCESS: The process with PID 9168 has been terminated.
यह कमांड सर्विस प्रोसेस को जबरन समाप्त कर देगी। अब आप sc start servicename कमांड या सर्विस मैनेजमेंट कंसोल के माध्यम से सर्विस शुरू कर सकते हैं।
आप सर्विस प्रोसेस के PID को मैन्युअली जांचे बिना अधिक सुंदर तरीके से हैंग सर्विस को रोक सकते हैं। टास्ककिल टूल में /FI विकल्प होता है, जो आवश्यक सर्विसेज या प्रोसेसेज को चुनने के लिए फिल्टर का उपयोग करने की अनुमति देता है। आप विशिष्ट सर्विस को कमांड से किल कर सकते हैं:
taskkill /F /FI "SERVICES eq wuauserv"
या आप सर्विस नाम को पूरी तरह से छोड़ सकते हैं और कमांड से हैंग स्थिति में सभी सर्विसेज को किल कर सकते हैं:
taskkill /F /FI "status eq not responding"
इसके बाद, Stopping स्थिति में अटकी सर्विस रुक जानी चाहिए।
आप टास्ककिल यूटिलिटी का उपयोग रिमोट कंप्यूटर पर हैंग सर्विसेज को जबरन रोकने के लिए भी कर सकते हैं:
taskkill /S mun-fs01 /F /FI "SERVICES eq wuauserv"
PowerShell के साथ अटकी Windows सर्विस को जबरन रोकें
आप सर्विस को जबरन रोकने के लिए PowerShell का भी उपयोग कर सकते हैं। निम्न कमांड का उपयोग करके, आप Stopping स्थिति में सर्विसेज की सूची प्राप्त कर सकते हैं:
Get-WmiObject -Class win32_service | Where-Object {$_.state -eq 'stop pending'}
या Starting स्थिति में:
Get-WmiObject -Class win32_service | Where-Object {$_.state -eq 'start pending'}

Stop-Process cmdlet पाए गए सभी सर्विसेज के प्रोसेसेज को समाप्त करने की अनुमति देता है। निम्न PowerShell स्क्रिप्ट Windows पर सभी अटकी सर्विस प्रोसेसेज को समाप्त कर देगी:
$Services = Get-WmiObject -Class win32_service -Filter "state = 'stop pending'"
if ($Services) {
foreach ($service in $Services) {
try {
Stop-Process -Id $service.processid -Force -PassThru -ErrorAction Stop
}
catch {
Write-Warning -Message "Error. Error details: $_.Exception.Message"
}
}
}
else {
Write-Output "No services with 'Stopping'.status"
}

नए PowerShell Core 6.x/7.x में Get-WmiObject के बजाय Get-CimInstance cmdlet का उपयोग करना चाहिए। स्क्रिप्ट की पहली कमांड को इससे बदलें:
$Services = Get-CimInstance -Class win32_service | where-Object state -eq 'stop pending'
ResMon का उपयोग करके हैंग सर्विसेज पर वेट चेन्स का विश्लेषण
आप resmon.exe (Resource Monitor) का उपयोग करके उस प्रोसेस का पता लगा सकते हैं जिसके कारण सर्विस हैंग हुई।
- Resource Monitor विंडो में, CPU टैब पर जाएं और हैंग सर्विस प्रोसेस ढूंढें;
- कॉन्टेक्स्ट मेनू से Analyze Wait Chain आइटम चुनें;

- नई विंडो में, आप सबसे अधिक संभावना देखेंगे कि आपका प्रोसेस किसी अन्य प्रोसेस की प्रतीक्षा कर रहा है। प्रोसेस समाप्त करें। यदि आप svchost.exe या किसी अन्य सिस्टम प्रोसेस की प्रतीक्षा कर रहे हैं, तो आपको इसे समाप्त करने की आवश्यकता नहीं है। इस प्रोसेस के लिए वेट चेन का विश्लेषण करने का प्रयास करें। उस प्रोसेस का PID ढूंढें जिसकी svchost.exe प्रतीक्षा कर रहा है और इसे किल करें।
Process Explorer का उपयोग करके हैंग सर्विस को किल करना
यहां तक कि लोकल एडमिनिस्ट्रेटर भी SYSTEM अकाउंट के तहत चलने वाली कुछ प्रोसेसेज को समाप्त नहीं कर सकते। तथ्य यह है कि एडमिन अकाउंट के पास कुछ प्रोसेसेज या सर्विसेज पर अनुमतियां नहीं होतीं। ऐसी प्रोसेस (सर्विस) को रोकने के लिए, आपको सर्विस (प्रोसेस) पर लोकल Administrators ग्रुप को अनुमतियां देनी होंगी और फिर उन्हें किल करना होगा। इसके लिए, हमें दो छोटे टूल्स की आवश्यकता होगी: psexec.exe और ProcessExplorer (Microsoft वेबसाइट पर उपलब्ध)।
- ProcessExplorer को सिस्टम विशेषाधिकारों (runas SYSTEM) के साथ शुरू करने के लिए, कमांड का उपयोग करें:
PSExec -s -i ProcExp.exe - Process Explorer प्रोसेस सूची में, अटकी सर्विस प्रोसेस ढूंढें और इसकी प्रॉपर्टीज खोलें;
- Services टैब पर जाएं, अपनी सर्विस ढूंढें और Permissions बटन पर क्लिक करें;

- Administrators ग्रुप के लिए सर्विस परमिशन में Full Control अधिकार दें। परिवर्तन सेव करें;

- अब सर्विस प्रोसेस को रोकने का प्रयास करें। कृपया ध्यान दें, कि सर्विस पर अनुमति अस्थायी रूप से तब तक दी जाती है जब तक इसे रीस्टार्ट नहीं किया जाता। सर्विस पर स्थायी अनुमतियां देने के लिए लेख "Set permissions on a Windows service" देखें।