आप यह कैसे पता लगा सकते हैं कि विंडोज में कौन सी प्रक्रिया खुली हुई है?


515

एक चीज जो मुझे विंडोज के बारे में नहीं बताती है, वह है पुराने शेयरिंग उल्लंघन की त्रुटि। अक्सर आप इसकी पहचान नहीं कर सकते कि इसे खुला क्या रखा है। आमतौर पर यह सिर्फ एक संपादक या एक्सप्लोरर होता है जो एक प्रासंगिक निर्देशिका की ओर इशारा करता है लेकिन कभी-कभी मुझे अपनी मशीन को रिबूट करने का सहारा लेना पड़ता है।

कैसे अपराधी को खोजने के लिए कोई सुझाव?


12
आपको लगता होगा कि इस सब के बाद, विंडोज लोग हमें एक्सप्लोरर के भीतर से इसे आसानी से करने का एक तरीका देंगे। मुझे आश्चर्य है कि ऐसा क्यों नहीं हुआ?
कवफलैंड्स

6
मुझे पता है कि एक्सप्लोरर बहुत बार समस्या प्रक्रिया है जो बिना किसी स्पष्ट कारण के फ़ाइल पर पकड़ है।
एडी

मुझे पता है कि यह आपकी बहुत मदद नहीं करता है, लेकिन मुझे लगता है कि मुझे याद है कि यह विस्टा और 2008 सर्वर के बाद अगले विंडोज रिलीज की एक योजनाबद्ध सुविधा थी। या शायद यह एक WinFS बात है। यकीन नहीं होता कि मैंने कहाँ पढ़ा ...
किप

सारांश में मेरा जवाब यहां देखें , सारांश में OpenedFilesView 2019 में अभी भी काम करता है
विजय

जवाबों:


440

मुझे Sysinternals Process Explorer के साथ सफलता मिली है । इसके साथ, आप यह पता लगाने के लिए खोज कर सकते हैं कि किस प्रक्रिया (तों) में एक फ़ाइल खुली है, और यदि आप चाहें तो हैंडल (एस) को बंद करने के लिए इसका उपयोग कर सकते हैं। बेशक, यह पूरी प्रक्रिया को बंद करने के लिए सुरक्षित है। सावधानी और निर्णय का अभ्यास करें।

किसी विशिष्ट फ़ाइल को खोजने के लिए, मेनू विकल्प का उपयोग करें फ़ाइल Find->Find Handle or DLL... के पथ के भाग में टाइप करें। प्रक्रियाओं की सूची नीचे दिखाई देगी।

यदि आप कमांड लाइन पसंद करते हैं, तो Sysinternals सुइट में कमांड लाइन टूल हैंडल शामिल है , जो खुले हैंडल को सूचीबद्ध करता है। इसका उपयोग कैसे करें पर कुछ उदाहरण:

  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i e:\ - ड्राइव E से खोली गई सभी फाइलें ढूंढें:
  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i file-or-path-in-question

17
आप हैंडल को बंद कर सकते हैं, लेकिन ध्यान रखें, आप एक आवेदन के तहत गलीचा बाहर खींच रहे हैं, परिणाम सबसे अच्छा अप्रत्याशित होगा।
वाल्डेनएल

12
@Walden: बिल्कुल। YMMV। WinXP के साथ, मैंने कई बार एक्सप्लोरर को बिना किसी स्पष्ट कारण के लिए हैंडल खोल दिया था और इसे बंद करने से इनकार कर दिया था। जब ऐसा किसी फ़ाइल पर होता है जिसे आपको हटाने की आवश्यकता होती है, तो आपके पास हैंडल को बंद करने, या रीबूट करने के लिए मजबूर करने का विकल्प होता है। अब तक, दर्जनों बार ऐसा करने के बाद, मुझे कोई बुरा प्रभाव नहीं पड़ा है। किसी भी उन्नत उपकरण के साथ, सावधानी और निर्णय के साथ उपयोग करें।
एडी

5
हैंडल को बंद करने से एप्लिकेशन को किसी अन्य फ़ाइल पर हैंडल को फिर से उपयोग करने का कारण हो सकता है, जिससे भ्रष्टाचार हो सकता है - नीचे जेफ का जवाब देखें: serverfault.com/a/15695/79266 ... फ़ाइल को खुला रखने वाले एप्लिकेशन को मारने के लिए बहुत अधिक सुरक्षित, यदि आप रिबूट नहीं करना चाहते हैं।
रिचवेल

14
एक्सप्लोरर के लिए, btw, ctrl-shift को पकड़ें और स्टार्ट मेन्यू के एक खाली क्षेत्र पर राइट-क्लिक करें, और आपको "एक्जिट एक्सप्लोरर" मिल जाएगा - ps, काफी जेफ का जवाब नहीं ..
मार्क सोउल

2
यह गैर कार्यकारी फ़ाइल के लिए मदद नहीं करता है ig एक पाठ फ़ाइल। मुझे यह जानना होगा कि लॉग फ़ाइल में कौन लिख रहा है। कोई उपाय?
Xaqron

183

आप इसके लिए संसाधन मॉनिटर का उपयोग कर सकते हैं जो विंडोज 7, 8 और 10 के साथ बिल्ट-इन आता है ।

  1. ओपन रिसोर्स मॉनिटर , जो मिल सकता है
    • प्रारंभ मेनू में संसाधन मॉनिटर या resmon.exe के लिए खोज करके , या
    • अपने टास्क मैनेजर में प्रदर्शन टैब पर एक बटन के रूप में
  2. सीपीयू टैब पर जाएं
  3. एसोसिएटेड हैंडल अनुभाग में खोज फ़ील्ड का उपयोग करें
    • नीचे स्क्रीन शॉट में नीला तीर देखें

जब आपको हैंडल मिल जाता है, तो आप इमेज और / या PID कॉलम को देखकर प्रक्रिया को पहचान सकते हैं।

तब आप एप्लिकेशन को बंद करने का प्रयास कर सकते हैं जैसा कि आप सामान्य रूप से करेंगे, या यदि संभव नहीं है, तो बस हैंडल को राइट-क्लिक करें और वहां से सीधे प्रक्रिया को मार दें। बहुत आसान!

संसाधन मॉनिटर स्क्रीनशॉट

मेरे मूल उत्तर से नकल: https://superuser.com/a/643312/62


2
यह ध्यान देने योग्य है कि विंडोज 8 पर इस कार्यक्रम को ढूंढना मुश्किल हो सकता है - 'resmon.exe' की खोज को इसका पता लगाना चाहिए।
काइलोटन

4
@ कियलोतन, खोज को बर्बाद करना बंद करो। resmon सीधे cmd से चलाएं
Pacerier

1
@ स्पेसियर: अच्छा लगा। मैं विंडोज पथ में होने वाली चीजों के लिए अभ्यस्त नहीं हूं।
काइलोटन

यह मुझे le हैंडल ’से बेहतर लगता है फाइंडस्ट्र ’और er अनलॉकर’ विकल्प, हालांकि वे भी प्रभावी हैं
मार्कस विनीसियस पोम्पेउ

4
विंडोज 10 में अभी भी मान्य है और टास्क मैनेजर के अंदर "ओपन रिसोर्स मॉनिटर" बटन का उपयोग करके पाया जा सकता है -> प्रदर्शन टैब।
नॉर्मन ब्रेउ

92

Openfiles कमांड का प्रयास करें ।


10
एक अंतर्निहित कमांड के लिए +1, हालांकि मैं इस समय के लिए व्यक्तिगत रूप से ProcessExplorer का उपयोग करता हूं।
RBerteig

वास्तव में सहायक है।
मार्क

7
त्रुटि: लक्ष्य प्रणाली को 32 बिट OS चलना चाहिए।
बोझाजोए

4
64 OS के लिए काम नहीं करता है!

12
यह विंडोज 2012R2 64 बिट के लिए काम करता दिख रहा है, लेकिन आपको रनिंग openfiles /local onऔर रीस्टार्ट करके "ओपन लोकल ट्रैकिंग" सर्विस को इनेबल करना होगा । यह इस सुविधा को बहुत उपयोगी नहीं बनाता है।
Guss

82

बस बंद हैंडल के साथ बहुत सावधान रहें; हैंडिल रीसाइक्लिंग के कारण, यह आपके द्वारा सोचने से भी अधिक खतरनाक है - यदि आप फ़ाइल हैंडल को बंद करते हैं, और प्रोग्राम कुछ और खोलता है, तो आपके द्वारा बंद की गई मूल फ़ाइल हैंडल का उस "कुछ और" के लिए पुन: उपयोग किया जा सकता है। और अब अनुमान करें कि क्या होता है यदि प्रोग्राम जारी रहता है, यह सोचकर कि यह फ़ाइल पर काम कर रहा है (जिसका हैंडल आपने बंद किया है), जब वास्तव में वह फ़ाइल हैंडल अब कुछ और इंगित कर रहा है।

इस विषय पर रेमंड चेन की पोस्ट देखें

मान लीजिए कि एक खोज अनुक्रमणिका सेवा में अनुक्रमण के लिए एक फ़ाइल खुली है, लेकिन अस्थायी रूप से अटक गई है और आप फ़ाइल को हटाना चाहते हैं, इसलिए आप (अनजाने में) हैंडल को बंद कर देते हैं। खोज अनुक्रमणिका सेवा कुछ जानकारी रिकॉर्ड करने के लिए अपनी लॉग फ़ाइल खोलती है, और हटाए गए फ़ाइल के हैंडल को लॉग फ़ाइल के हैंडल के रूप में पुनर्नवीनीकरण किया जाता है। अटका हुआ ऑपरेशन आखिरकार पूरा हो जाता है, और खोज इंडेक्स सेवा अंत में उस हैंडल को बंद करने के लिए चारों ओर हो जाती है जो इसे खुला था, लेकिन यह लॉग फाइल हैंडल को अनजाने में बंद कर देता है।

खोज अनुक्रमणिका सेवा एक और फ़ाइल खोलती है, लिखने के लिए एक कॉन्फ़िगरेशन फ़ाइल कहती है ताकि यह कुछ स्थिर स्थिति को अपडेट कर सके। लॉग फ़ाइल के लिए हैंडल कॉन्फ़िगरेशन फ़ाइल के लिए हैंडल के रूप में पुनर्नवीनीकरण हो जाता है। खोज सूचकांक सेवा कुछ जानकारी लॉग करना चाहती है, इसलिए यह अपनी लॉग फ़ाइल को लिखती है। दुर्भाग्य से, लॉग फ़ाइल हैंडल बंद कर दिया गया था और हैंडल इसकी कॉन्फ़िगरेशन फ़ाइल के लिए पुन: उपयोग किया गया था। लॉग की गई जानकारी कॉन्फ़िगरेशन फ़ाइल में जाती है, इसे दूषित करती है।

इस बीच, आपके द्वारा बंद किए गए एक अन्य हैंडल को म्यूटेक्स हैंडल के रूप में पुन: उपयोग किया गया, जिसका उपयोग डेटा को दूषित होने से रोकने में मदद करने के लिए किया जाता है। जब मूल फ़ाइल हैंडल बंद हो जाता है, तो म्यूटेक्स हैंडल बंद हो जाता है और डेटा भ्रष्टाचार के खिलाफ सुरक्षा खो जाती है। यह सेवा जितनी अधिक समय तक चलती है, उतने ही अधिक भ्रष्ट हो जाते हैं। आखिरकार, किसी ने नोटिस किया कि सूचकांक गलत परिणाम दे रहा है। और जब आप सेवा को पुनरारंभ करने का प्रयास करते हैं, तो यह विफल हो जाता है क्योंकि इसकी कॉन्फ़िगरेशन फ़ाइलें दूषित हो गई हैं।

आप समस्या को उस कंपनी को रिपोर्ट करते हैं जो खोज अनुक्रमणिका सेवा बनाती है और वे निर्धारित करते हैं कि अनुक्रमणिका दूषित हो गई है, लॉग फ़ाइल ने रहस्यमय तरीके से लॉगिंग बंद कर दी है, और कॉन्फ़िगरेशन फ़ाइल को कचरे से अधिलेखित कर दिया गया था। कुछ गरीब तकनीशियन को यह पता लगाने का निराशाजनक कार्य सौंपा गया है कि सेवा अपने अनुक्रमित और कॉन्फ़िगरेशन फ़ाइलों को क्यों दूषित करती है, इस बात से अनजान कि भ्रष्टाचार का स्रोत यह है कि आपने बंद हैंडल को मजबूर किया।


12
महत्वपूर्ण चेतावनी, यह शीर्ष के करीब जाना चाहिए - एक रिबूट शायद एक चुपचाप दूषित फ़ाइल से बेहतर है।
रिचवेल

6
+1 यह निश्चित रूप से मुझे मजबूरन बंद किए गए हैंडल के बारे में दो बार सोचने देगा! यह मेरे लिए अजीब लगता है कि विंडोज तुरंत संख्या को बढ़ाने के लिए और आवश्यक होने पर केवल लपेटने के बजाय एक बंद हैंडल की संख्या का फिर से उपयोग करेगा। यह कम से कम इस समस्या के होने की संभावना को बहुत कम कर देगा।
EM0

1
@RichVel अपराधी प्रक्रिया को समाप्त करना संभवतः पूर्ण रीबूट से बेहतर है।
दिमित्री ग्रिगोरीव

@DmitryGrigoryev - अच्छी बात है, और वास्तव में मैंने पहले ही उल्लेख किया है कि यहाँ
रिचवेल

2
यह एक बहुत ही महत्वपूर्ण चेतावनी है, लेकिन इस सवाल का जवाब नहीं देता है कि आप कैसे पाते हैं कि विंडोज़ में एक फाइल किस प्रक्रिया को खोल रही है?
प्लोनी जूल

29

मैंने अतीत में ऐसी प्रक्रियाओं को खोजने के लिए सफलता के साथ हैंडल का उपयोग किया है ।


3
मैं हर समय इस उपकरण का उपयोग करता हूं। अगर मैं USB ड्राइव को नहीं निकाल सकता, तो मैं "H: हैंडल" (या जो भी ड्राइव अक्षर है) टाइप करता हूं। सबसे अच्छा, आप इसका उपयोग करीबी हैंडल को मजबूर करने के लिए कर सकते हैं।
क्रिस थॉम्पसन

10

लॉकहंटर ( http://lockhunter.com/ ) 32 और 64 बिट सिस्टम पर काम करता है।


यह Windows Explorer में उस फ़ाइल के संदर्भ मेनू से भी उपलब्ध है।
user61849


7

बस स्पष्ट करने के लिए, यह 3 पार्टी ऐप्स को दुर्व्यवहार करने का एक परिणाम होने की अधिक संभावना है, जो कि CreateFile API कॉल का सही उपयोग न करने की तुलना में विंडोज में ही कुछ भी होना है। शायद यह CreateFile के डिजाइन का एक परिणाम है, लेकिन किया जाता है और हम वापस नहीं जा सकते।

मूल रूप से एक विंडोज प्रोग्राम में एक फ़ाइल खोलते समय आपके पास एक ध्वज निर्दिष्ट करने का विकल्प होता है जो साझा पहुंच की अनुमति देता है। यदि आप ध्वज निर्दिष्ट नहीं करते हैं, तो प्रोग्राम फ़ाइल की अनन्य पहुँच लेता है।

अब, यदि एक्सप्लोरर को यहां अपराधी लगता है, तो यह ऐसा हो सकता है कि यह सतह पर है, और यह कि सच्चा अपराधी कुछ ऐसा है जो एक शेल एक्सटेंशन स्थापित करता है जो सभी फ़ाइलों को अपने स्वयं के प्रयोजनों के लिए एक फ़ोल्डर में खोलता है लेकिन या तो है गंग-हो ऐसा करने में, या जो स्वयं के बाद ठीक से सफाई नहीं करता है। सिमेंटेक एवी कुछ ऐसा है जिसे मैंने पहले भी करते देखा है, और मुझे आश्चर्य नहीं होगा अगर अन्य एवी प्रोग्राम को भी दोष दिया जाए। स्रोत नियंत्रण प्लग-इन भी गलती पर हो सकता है।

तो वास्तव में एक जवाब नहीं है, लेकिन केवल कुछ सलाह जो हमेशा एक बुरी तरह से लिखे गए 3 पार्टी कार्यक्रम के लिए विंडोज को दोष नहीं दे सकती (कुछ ऐसा जो किसी अन्य ओएस पर भी हो सकता है जिसमें निहित फ़ाइल लॉकिंग है, लेकिन किसी भी यूनिक्स आधारित ओएस ने साझा किया है। चूक)।


1
मैं इस तथ्य पर एक 3 पार्टी ऐप को दोष नहीं दूंगा कि मेरी विंडोज़ एक्सप्लोरर हमेशा अपने वर्किंग डायरेक्टरी में Thumbs.db फाइलों को लॉक करता है, लेकिन जब मैं वर्किंग डायरेक्टरी को स्विच करता हूं तो इसे हमेशा अनलॉक नहीं करता। खिड़की बंद करने पर कम से कम वे अनलॉक हो जाते हैं, मुझे सभी खोजकर्ताओं को मारने की ज़रूरत नहीं है ...
अलेक्जेंडर

@Darth, क्या आप Microsoft के बाज़ारिया हैं?
पचेरियर

6

किसी दूरस्थ सर्वर पर, जब आप किसी नेटवर्क साझा पर जाँच कर रहे होते हैं, तो कंप्यूटर प्रबंधन कंसोल जैसा कुछ सरल इस जानकारी को प्रदर्शित कर सकता है और फ़ाइल को बंद कर सकता है।


वास्तव में, इस तरह के जटिल जवाब क्यों हैं?
रोहित गुप्ता

6

Apropos एक्सप्लोरर एक फ़ाइल को खुला रखता है: "जब ऐसा होता है जब आपको हटाने की आवश्यकता होती है, तो आपके पास हैंडल बंद करने, या रिबूट करने के लिए मजबूर करने का विकल्प होता है।"

आप बस एक्सप्लोरर को समाप्त कर सकते हैं।

अगर यह एक बार की बात है (एक्सप्लोरर सामान्य रूप से इस फ़ाइल को खुला नहीं रखता है) तो मुझे लगता है कि लॉगिंग बंद हो जाएगी और लॉग ऑन करने पर यह चाल चलेगी।

अन्यथा, डेस्कटॉप एक्सप्लोरर प्रक्रिया को मारें और वह करें जो आप चाहते हैं कि यह चला गया है। सबसे पहले cmd.exe की एक प्रति शुरू करें (आपको अपना इच्छित क्लीनअप करने के लिए UI की आवश्यकता है)। सुनिश्चित करें कि कोई गैर-डेस्कटॉप खोजकर्ता नहीं चल रहे हैं। फिर अंतिम एक्सप्लोरर, जैसे, टास्क मैनेजर को मारें। कमांड प्रॉम्प्ट में वही करें जो आप चाहते हैं। अंत में, कमांड प्रॉम्प्ट से एक्सप्लोरर चलाएं, और यह डेस्कटॉप बन जाएगा।

मुझे लगता है कि कुछ अवशिष्ट अप्रियता हो सकती है अगर कुछ सिस्ट्रेई प्रोग्राम शेल को फिर से शुरू करने से निपट नहीं सकते हैं।


1
यह हैंडल को बंद करने की तुलना में बहुत सुरक्षित है, और रिबूट करने की तुलना में कम विघटनकारी है। अन्य कार्यक्रमों पर भी लागू होता है - मुझे अक्सर लगता है कि मैंने Microsoft Office प्रोग्राम को बंद करने के बाद भी फाइलों पर ताले लगा रखे हैं।
रिचवेल

5

फ़ाइलें स्थानीय प्रक्रियाओं द्वारा लॉक की जा सकती हैं ( अनलॉकर उपयोग करने के लिए उपकरण है) और फ़ाइल एक्सेस के माध्यम से जो शेयरों के माध्यम से आता है।

विंडोज में एक अंतर्निहित फ़ंक्शन है जो आपको दिखाता है कि दूरस्थ कंप्यूटर द्वारा स्थानीय कंप्यूटर पर कौन सी फाइलें खुली / लॉक हैं (जिसमें फ़ाइल शेयर के माध्यम से फ़ाइल खुली है):

* Select "Manage Computer" (Open "Computer Management")
* click "Shared Folders"
* choose "Open Files"

वहां आप फ़ाइल को जबरदस्ती बंद भी कर सकते हैं।




2

उपरोक्त उत्तोलित उत्तर उन स्थितियों को कवर करते हैं, जहां एक प्रोग्राम प्रक्रिया फ़ाइल हैंडल को खुला रखती है, जो (सौभाग्य से) ज्यादातर समय होता है - हालांकि कुछ मामलों में (जैसा कि इस समय सिस्टम पर हो रहा है), सिस्टम खुद एक फाइल हैंडल रखता है। खुला।

ऊपर दिए गए प्रक्रिया एक्सप्लोरर के साथ फ़ाइल हैंडल होल्डिंग प्रक्रिया को खोजने के लिए निर्देशों का पालन करके आप इस स्थिति की पहचान कर सकते हैं, और यह देखते हुए कि प्रक्रिया का नाम 'सिस्टम' के रूप में सूचीबद्ध है, या संसाधन मॉनिटर का उपयोग करते हुए निर्देशों का पालन करके और ध्यान दें कि कोई छवि नहीं दिखाई गई है। आपकी रुचि के फ़ाइल पर एक फ़ाइलहैंडल खुला होना (हालाँकि स्पष्ट रूप से कुछ ऐसा होता है जैसे आप फ़ाइल को संपादित / हटा नहीं सकते)।

यदि ऐसा होता है, तो आपका विकल्प (अब तक मुझे पता है) को पुनरारंभ करना है - या उस फ़ाइल के साथ कुछ भी करने के बारे में भूल जाओ।


0

मैं जेरेमी Zawodny के ब्लॉग से कुछ समय पहले एक्सटेड टास्क मैनेजर को चालू कर दिया , और यह आगे की प्रक्रियाओं पर भी जानकारी नीचे ट्रैक करने के लिए बहुत अच्छा है। ऊपर के रूप में प्रोसेस एक्सप्लोरर के लिए +1, विशेष रूप से उन प्रक्रियाओं को मारने के लिए जो मानक टास्क मैनेजर समाप्त नहीं होंगे।


0

एक उपकरण FILEMON है और खुली फ़ाइलों और हैंडल को दिखाता है। यदि आप इसे लाइव देखते हैं, तो इसके प्रदर्शन को बनाए रखना कठिन है, यह इतनी जल्दी करता है। लेकिन आप इसे लाइव प्रदर्शित करने से रोक सकते हैं और आप सभी फ़ाइल खुली / लेखन गतिविधि देख सकते हैं। अब Microsoft के पास है लेकिन मूल रूप से Sysinternals के पास है


1
इस का अद्यतन संस्करण प्रक्रिया मॉनिटर है। आप इसे यहाँ प्राप्त कर सकते हैं: http://technet.microsoft.com/en-us/sysinternals/bb896645
yitwail
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.