कभी-कभी जब आप विंडोज़ में किसी फ़ाइल को हटाने, नाम बदलने या स्थानांतरित करने का प्रयास करते हैं, तो आपको एक संदेश दिखाई दे सकता है कि फ़ाइल व्यस्त/लॉक/किसी अन्य प्रक्रिया द्वारा उपयोग की जाती है। फ़ाइल को खुला रखने वाले प्रोग्राम का नाम आमतौर पर फ़ाइल एक्सप्लोरर संदेश विंडो में दिखाया जाता है। फ़ाइल को अनलॉक करने के लिए, प्रोग्राम को बंद करने के लिए पर्याप्त है। हालाँकि, ऐसा हो सकता है कि किसी फ़ाइल या लाइब्रेरी का उपयोग किसी अज्ञात या सिस्टम प्रक्रिया द्वारा किया जाता है। फिर इसे खोलना मुश्किल है।
कई ऐप एक्सक्लूसिव मोड में फाइलें खोलते हैं। उसी समय, फ़ाइल को एक फ़ाइल सिस्टम द्वारा लॉक कर दिया जाता है जो अन्य ऐप्स और प्रक्रिया से इनपुट-आउटपुट संचालन को रोकता है। यदि आप ऐप को बंद करते हैं, तो फ़ाइल लॉक रिलीज़ हो जाता है।
एक फ़ाइल लॉक संदेश भिन्न हो सकता है। उदाहरण के लिए, निम्न स्क्रीनशॉट फ़ाइल प्रकार और इससे जुड़े ऐप को दिखाता है:
<पूर्व>फ़ाइल/फ़ोल्डर उपयोग में है। कार्रवाई पूरी नहीं की जा सकती क्योंकि फ़ाइल किसी अन्य प्रोग्राम में खुली है। फ़ोल्डर या फ़ाइल बंद करें और पुनः प्रयास करें।
तब आप आसानी से समझ सकते हैं कि किस ऐप ने फाइल को लॉक कर दिया है और इसे बंद कर दिया है।
हालाँकि, कभी-कभी आप एक अधिक दिलचस्प संदेश देख सकते हैं कि एक फ़ाइल का उपयोग किसी अज्ञात या विंडोज सिस्टम प्रक्रिया द्वारा किया जाता है। यह या तो विंडोज़ प्रक्रिया हो सकती है या सिस्टम विशेषाधिकारों के साथ काम करने वाली अन्य प्रक्रियाएं, जैसे एंटीवायरस ऐप, बैकअप एजेंट, एमएसएसक्यूएल डेटाबेस इत्यादि।:
कार्रवाई पूरी नहीं की जा सकती क्योंकि फाइल सिस्टम में खुली है। फाइल को बंद करें और फिर से प्रयास करें।
आइए यह पता लगाने की कोशिश करें कि कौन सा प्रोग्राम, सेवा या विंडोज सिस्टम प्रक्रिया फ़ाइल का उपयोग कर रही है, फ़ाइल को कैसे अनलॉक किया जाए और क्या इसे मूल प्रक्रिया को बंद किए बिना जारी किया जा सकता है।
यदि आप किसी साझा नेटवर्क फ़ोल्डर में किसी फ़ोल्डर को हटा नहीं सकते हैं, तो समस्या संभवतः फ़ोल्डर में फ़ाइलों के थंबनेल कैशे वाले thumbs.db से संबंधित हो सकती है या फ़ाइल आपके SMB फ़ाइल सर्वर पर किसी अन्य उपयोगकर्ता द्वारा खोली गई (लॉक की गई) है।फ़ाइल को अनलॉक करने का सबसे आसान तरीका उस प्रक्रिया को समाप्त करना है जिसने इसे लॉक कर दिया है। लेकिन यह हमेशा संभव नहीं होता, खासकर सर्वर पर।
किसी फ़ाइल को लॉक करने वाली प्रक्रिया को खोजने के लिए, अक्सर अनलॉकर . का उपयोग करने की अनुशंसा की जाती है उपकरण। मैं अनलॉकर का उपयोग नहीं करता क्योंकि यह किसी प्रक्रिया या किसी फ़ाइल को लॉक करने वाली प्रक्रियाओं की श्रृंखला के बारे में विस्तृत जानकारी प्रदान नहीं करता है। न तो आप किसी प्रक्रिया द्वारा उपयोग की गई फ़ाइल को अनलॉक कर सकते हैं — आपको किसी ऐप को पूरी तरह से बंद करना होगा।साथ ही, यह एक तृतीय-पक्ष टूल है, और इसे इंस्टॉल करते समय आपको बहुत सावधान रहना चाहिए, क्योंकि यह उन प्रोग्रामों के पूरे बंडल को स्थापित करने का सुझाव देता है जिनकी आपको आवश्यकता नहीं है।
जब विंडोज़ में एक प्रक्रिया एक फ़ाइल खोलती है, तो एक फाइल डिस्क्रिप्टर (हैंडल) इनपुट/आउटपुट स्ट्रीम को असाइन किया जाता है। प्रक्रिया और उसके बच्चे की प्रक्रिया हैंडलर का उपयोग करके फ़ाइल तक पहुँचती है। Windows API का उपयोग करके, आप फ़ाइल के हैंडल को मुक्त करने और फ़ाइल को अनलॉक करने के लिए अपने फ़ाइल सिस्टम को एक संकेत भेज सकते हैं।
यदि आप फ़ाइल हैंडल को बंद करने के लिए बाध्य करते हैं, तो इसका परिणाम आपके ऐप या कंप्यूटर के अस्थिर कार्य में हो सकता है। यदि आप सुनिश्चित नहीं हैं कि किसी ऐप के फ़ाइल हैंडल को बंद करने के बाद क्या हो सकता है, तो इसे किसी प्रोडक्शन सर्वर पर तब तक न करें जब तक कि आपने पहले से इसका परीक्षण न कर लिया हो।प्रोसेस एक्सप्लोरर का उपयोग करके किसी फ़ाइल को कैसे अनलॉक करें?
प्रोसेस एक्सप्लोरर Sysinternals किट से एक निःशुल्क टूल है जिसे आप Microsoft वेबसाइट (https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer) से डाउनलोड कर सकते हैं। आइए एक ऐसी प्रक्रिया को खोजने का प्रयास करें जिसने फ़ाइल को लॉक कर दिया है और प्रक्रिया के फ़ाइल हैंडल को रीसेट करके फ़ाइल को मुक्त कर दिया है।
- आपको ProcessExplorer स्थापित करने की आवश्यकता नहीं है:बस डाउनलोड करें, निकालें और procexp.exe को व्यवस्थापक के रूप में चलाएं;
- चुनें ढूंढें -> हैंडल या डीएलएल ढूंढें (या
Ctrl-F
दबाएं ); - उस फ़ाइल का नाम निर्दिष्ट करें जिसे आप अनलॉक करना चाहते हैं और खोज click पर क्लिक करें;
- अपनी इच्छित फ़ाइल का चयन करें। फ़ाइल को खोलने की प्रक्रिया को प्रोसेस ट्री में हाइलाइट किया जाएगा। उस पर राइट-क्लिक करें और किल प्रोसेस ट्री . चुनें प्रक्रिया को समाप्त करने के लिए। हालाँकि, आप प्रक्रिया को समाप्त किए बिना फ़ाइल हैंडल को आज़माकर बंद कर सकते हैं। आपके द्वारा खोजा गया फ़ाइल हैंडल प्रोसेस एक्सप्लोरर बॉटम पैनल में अपने आप हाइलाइट हो जाता है। हैंडल पर राइट-क्लिक करें और हैंडल बंद करें select चुनें . फ़ाइल बंद करने की पुष्टि करें;
तो आपने मूल प्रक्रिया को समाप्त किए बिना फ़ाइल हैंडल बंद कर दिया है। फिर आप फ़ाइल को हटा या उसका नाम बदल सकते हैं।
हैंडल टूल का उपयोग करके फ़ाइल हैंडल को कैसे रिलीज़ करें?
हैंडल करें Sysinternals का एक अन्य कमांड लाइन टूल है (आप इसे Microsoft वेबसाइट:https://docs.microsoft.com/en-us/sysinternals/downloads/handle पर डाउनलोड कर सकते हैं)। यह आपको अपनी फ़ाइल को लॉक करने की प्रक्रिया खोजने और हैंडल को मुक्त करके लॉक को मुक्त करने की अनुमति देता है।
- हैंडल संग्रह को डाउनलोड करें और निकालें;
- एक व्यवस्थापक के रूप में कमांड प्रॉम्प्ट खोलें और निम्न कमांड चलाएँ:
handle64.exe > listproc.txt
- यह कमांड ओपन हैंडल की लिस्ट को एक txt फाइल में सेव कर देगा। आप जिस निर्देशिका को बदलना चाहते हैं, उसके लिए हैंडल प्रदर्शित कर सकते हैं:
Handle64.exe -a “C:\Program Files\App”
या विशिष्ट प्रक्रिया के लिए:handle64.exe -p excel.exe
- किसी भी टेक्स्ट एडिटर में listproc.txt खोलें और वह लाइन ढूंढें जिसमें लॉक की गई फ़ाइल का नाम हो। फ़ाइल हैंडल को कॉपी करें ID (हेक्स प्रारूप में)। फिर उस सेक्शन में जाएं जहां हैंडल के मालिक की प्रक्रिया दिखाई जाती है और उसकी आईडी लिख लें। यह सबसे अधिक संभावना है कि सिस्टम के रूप में चलने वाली प्रक्रिया में पीआईडी 4 होगा। कुछ Windows सिस्टम प्रक्रियाओं के लिए, handle.exe निम्न संदेश देता है:
wininit.exe pid: 732 \<unable to open process>
. इसका अर्थ है कि आप इन सिस्टम प्रक्रियाओं के बारे में कोई जानकारी प्राप्त नहीं कर सकते (यहां तक कि प्रशासक के रूप में भी)। ऐसी प्रक्रियाओं द्वारा फ़ाइल हैंडल को खोलने के लिए, cmd.exe को सिस्टम के रूप में चलाएँ और हैंडल की सूची फिर से प्राप्त करने का प्रयास करें। - फिर कमांड प्रॉम्प्ट पर वापस आएं और इसके हैंडलआईडी और प्रोसेसआईडी द्वारा फाइल हैंडल को रीसेट करें। कमांड का प्रारूप निम्न है:
handl64e.exe -c HandleID -p ProcessID
उदाहरण के लिए:handl64e.exe -c 18C -p 18800
- उपकरण प्रक्रिया के लिए फ़ाइल को बंद करने की पुष्टि करने के लिए आपको संकेत देगा।
y
. दबाकर इसकी पुष्टि करें ->enter
।
यदि सिस्टम फ़ाइल के बंद होने पर सही ढंग से प्रतिक्रिया करता है, तो आप प्रक्रिया को समाप्त किए बिना या अपने सर्वर/कंप्यूटर को पुनरारंभ किए बिना अपनी फ़ाइल को अनलॉक कर देंगे।