कैसे बताएं कि किस कंप्यूटर में नेटवर्क शेयर पर एक फाइल खुली है?


21

वातावरण:

Windows XP sp3, Windows 2003 सर्वर

संकट:

हमारे पास एक ही लॉगऑन नाम के साथ कई दर्जन कियोस्क मशीनें हैं, जो कभी-कभार और किसी शेयर पर एक फ़ाइल है। दर कई ताले है और एक मिनट में रिलीज़ होती है।

हाल ही में, हमने ग्राहकों में से एक को विशेष रूप से फ़ाइल लॉक करने का अनुभव किया है, और फिर फ़ाइल को रिलीज़ नहीं किया है। 

ऐसा होने पर हम फ़ाइल को बंद कर सकते हैं, लेकिन कई मिनट या उससे अधिक समय तक समाप्त हो सकते हैं, और यह एक अस्वीकार्य आउटेज है।

पिछले महीने में असंबंधित लॉक मुद्दा कई बार हुआ है। मैं देख रहा हूं कि लॉकिंग के लिए कौन सा कियोस्क डिवाइस जिम्मेदार है, और ऐसा होने पर जल्दी पता लगाने के लिए।

हमें सर्वर से मिलने वाली जानकारी में एक अंतर दिखाई देता है:

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

जो हम नहीं देख सकते हैं वह यह है कि एक विशिष्ट कंप्यूटर में एक विशिष्ट फ़ाइल खुली और लॉक होती है।

किसी को भी इसे पाने का एक तरीका पता है?

धन्यवाद -

लूटना


1
काफी नहीं जो आप पूछ रहे हैं, लेकिन एक वैकल्पिक दृष्टिकोण प्रत्येक प्रणाली के लिए एक अलग खाता बनाना होगा।
ब्रायन

जवाबों:


10

इस छोटे फ्रीवेयर उपयोग की जाँच करें ( शेयरवॉच ) की जांच करें, मुझे लगता है कि यह वही होगा जो आप देख रहे हैं।

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

वैकल्पिक शब्द


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

7

कमांड लाइन (CMD) दर्ज करें,

फिर टाइप करें: ओपेनफाइल्स / क्वेरी आईपी नेटवर्कशेयर की

और उपयोगकर्ता नाम और पासवर्ड की आवश्यकता हो सकती है।

आप यहाँ पर ओपनफाइल्स की अधिक जानकारी प्राप्त कर सकते हैं


धन्यवाद। Openfiles सर्वर कंसोल से शुद्ध सत्र के रूप में बड़े पैमाने पर एक ही आउटपुट देता है। यह कंप्यूटर का नाम नहीं देता है जिसने फ़ाइल को खोला है। मैं एक फाइल-> कंप्यूटर कनेक्शन की तलाश में हूं, न कि फाइल-> यूजर कनेक्शन की।
रॉ

5

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

1) प्रशासक अधिकारों के साथ फाइलरवर पर, स्टार्ट> रन> CMD [ENTER] करें

2) सीडी डेस्कटॉप [ENTER] (आप जल्द ही देखेंगे।)

3) Openfiles / query / v> file.txt [ENTER] (यह डेस्कटॉप पर एक फाइल बनाएगा जिसमें सर्वर पर सभी खोली गई फ़ाइलों की सूची होगी।)

4) फ़ाइल को खोलें। अपने फ़ाइल नाम और पढ़ने + लिखने की अनुमति दोनों युक्त लाइन को खोजें।

5) उस लाइन पर आईडी नंबर नोट करें और अपने कमांड कंसोल पर वापस जाएं।

6) ओपनफाइल्स / डिस्कनेक्ट / आईडी [आईडी नंबर यहां डालें] [ENTER]

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

संदर्भ: ओपनफाइल्स / क्वेरी /? ओपनफाइल्स / डिस्कनेक्ट /?

यदि आपको किसी स्क्रिप्ट या प्रोग्राम किए गए एप्लिकेशन की आवश्यकता होती है, जो आपके सिस्टम को पूरा किया गया है, तो कृपया बेझिझक टिप्पणी करें और मैं संपर्क जानकारी, तकनीक के साथ बहुत कम कीमत प्रदान करूंगा। मेरे आवेदन पर समर्थन।


हा! मेरा मुद्दा उस कंप्यूटर का पता लगाना था जिसमें से फ़ाइल खोली गई थी। क्या आपके पास ऐसा करने के लिए कोई विचार है? फ़ाइल को पहचानना और बंद करना सरल है, और इस परिणाम को इंजीनियर करने के बहुत सारे तरीके हैं। मैं प्रतिक्रिया की सराहना करते हैं, और अपने वाणिज्यिक प्रस्ताव मुझे तड़के व्यंग्य ;-) दिया
RobW

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

दरअसल, अपनी पोस्ट को वापस जाना और फिर से पढ़ना ... "ऐसा होने पर हम फ़ाइल को बंद कर सकते हैं, लेकिन कई मिनट या उससे अधिक समय तक समाप्त हो सकते हैं, और यह अस्वीकार्य आउटेज है।" कारण यह है कि आपका समाधान काम नहीं कर रहा है क्योंकि आप फ़ाइल को बंद कर रहे हैं। मेरा और आंशिक रूप से Sky100 का समाधान पहले प्रदान की गई फ़ाइल को बंद नहीं करता है, लेकिन केवल पढ़ने के लिए एक्सेस अधिकारों को बदल देता है। फिर से, मैं उलझन में हूँ कि कैसे OpenFiles ISN'T आप के लिए देख रहे हैं समाधान नहीं है। इसे नॉन सॉल्यूशन के रूप में लिखने से पहले एक शॉट दें। यदि आप एक प्रोग्रामर में रुचि नहीं रखते हैं, तो हर कुछ मिनटों में चलाने के लिए एक बैच फ़ाइल बनाएं।
थॉमस

मैं अपने प्रश्न के लिए अपना समाधान नीचे छोड़ रहा हूं, क्योंकि स्थिति की मेरी समझ पूरी तरह से नहीं है।
थॉमस

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

2

क्या आप जिस समस्या को हल करने का प्रयास कर रहे हैं, वह है (यानी विशिष्ट क्लाइंट कंप्यूटर (उपयोगकर्ता नहीं) को बंद फ़ाइल में मैप करें) या यह है कि क्या कोई लॉकिंग समस्या है जिसे आपको हल करने की आवश्यकता है?

अगर बाद वाला मदद करेगा तो दो चीजें होंगी जिन पर मैं नजर डालूंगा:

  • आपके क्लाइंट पर स्थापित AV की जाँच करें - मैंने कई क्लाइंट साइड देखें हैं AV ने शेयरों पर गंभीर असामयिक लॉकिंग व्यवहार को गंभीरता से लिया है।

  • EnableOpLocks रजिस्ट्री मान को 0 पर सेट करके अवसरवादी लॉकिंग को अक्षम करने का प्रयास करें ।

    HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parameters EnableOplocks REG_DWORD 0 या 1 डिफ़ॉल्ट: 1 (सक्षम)

यह प्रदर्शन को कुछ हद तक कम कर देगा लेकिन कुछ भी तोड़ना नहीं चाहिए।

मैं किसी को वास्तव में आपके बताए सवाल का जवाब देना पसंद करूंगा - यह एक दिलचस्प समस्या है।


धन्यवाद हेल्विक! अवसरवादी ताला को अक्षम करना एक दिलचस्प दृष्टिकोण है। सर्वर मुझे लगता है?
रॉब

हां यह सर्वर पर है - यह ग्राहकों को अवसरवादी लॉकिंग का अनुरोध करने से रोकता है ताकि वे स्थानीय रूप से कैश (भागों) फ़ाइलों को कर सकें।
19

अवसरवादी लॉकिंग को अक्षम करने से मारा जाने वाला प्रदर्शन हमारे लिए अस्वीकार्य होगा। हमें अपने परीक्षण में इसे देखना होगा।
रॉ

यह निश्चित रूप से इस के साथ एक जोखिम है - मुझे आपकी रुचि का पता चलेगा।
हेल्विक

2

रॉब की समस्या का निवारण करने और वैकल्पिक समाधान प्रदान करने के मेरे प्रयास में, मैं उनके प्रश्न का उत्तर देने में विफल रहा।

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

http://technet.microsoft.com/en-us/library/cc787268(WS.10).aspx

स्थापित करने के बाद, उपयोगकर्ता खाते को एक लेखा परीक्षक के रूप में संलग्न करके आप जिस विशिष्ट फ़ाइल की निगरानी करना चाहते हैं, उसकी स्थापना के साथ पालन करना सुनिश्चित करें, आपको जाने के लिए तैयार होना चाहिए।

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

हर कुछ दिनों में सुरक्षा लॉग को साफ़ करने के लिए सेटअप करना उपयोगी हो सकता है।

यदि यह काम नहीं करता है, तो यह संभव है कि आपको उपयोगकर्ता के नाम के बजाय फ़ाइल तक पहुंचने वाले प्रत्येक होस्ट नाम के अनुसार सिस्टम सेट करना होगा। मेरा मानना ​​है कि यह Microsoft प्रबंधन कंसोल के माध्यम से संभव है।

फिर, यदि आपको प्रोग्रामिंग की आवश्यकता है, तो मैं कुछ छोटे कार्यक्रम के लिए आपके पैसे का भार लेने के इच्छुक व्यापारी नहीं हूं। मैं एक ऐसे मूल्य पर गुणवत्ता की प्रोग्रामिंग प्रदान करता हूं जिससे एक व्यक्ति भी दूर न भागे। मुझे उम्मीद है कि इससे आपको अपने मुद्दे को सुलझाने में मदद मिलेगी।


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

1

यदि संभव हो तो मैं अलग-अलग उपयोगकर्ताओं को अलग-अलग कियोस्क भी प्रदान करूँगा - यह आपको अन्य लॉग का विश्लेषण करने में मदद कर सकता है ...

यदि यह संभव नहीं है: संभव समाधान की रूपरेखा: एक समाधान कियोस्क पर उचित फ़िल्टर (प्रश्न में फ़ाइल के लिए) के साथ sysinternals processmonitor जैसे उपकरण को चलाने के लिए हो सकता है (पता नहीं कि आप इसे छिपा सकते हैं)। कुछ कमांड लाइन विकल्प हैं जिनके साथ आप खेल सकते हैं जो कैप्चर किए गए डेटा को फ़ाइल में सहेज सकते हैं।

विभिन्न कियोस्क से इन लीजिए, उन्हें एक्सेल में आयात करें और जो बंद नहीं था, उसकी तलाश करें ...


0

यह निर्धारित करने के लिए कमांड netstat का उपयोग करने के बारे में क्या?

netstat -an | find ":445"

इससे आपको जुड़ी हुई मशीनों के आईपी पते दिए जाने चाहिए।

यदि आप IP पते के बजाय होस्टनाम चाहते हैं, तो उपयोग करें

netstat -a | find "microsoft-ds"

हालाँकि, इसे निष्पादित करने में अधिक समय लगेगा, विशेष रूप से व्यस्त फ़ाइल सर्वर या डोमेन नियंत्रक पर, क्योंकि इसमें बहुत सारे होस्ट लुकअप करने होंगे।

इसके अलावा, ध्यान रखें कि परिणाम इनबाउंड, आउटबाउंड और निष्क्रिय सुनने वाले पोर्ट दिखाएंगे।

इनबाउंड कनेक्शन दिखाएगा: बाएं कॉलम में 445, आउटबाउंड इसे दाहिने कॉलम में दिखाता है।

यदि आप 'LISTENING' और किसी भी लाइन को केवल स्थानीय IP पते (जैसे 0.0.0.0 या 127.0.0.1) या कंप्यूटर के होस्टनाम को दिखाने वाले किसी भी परिणाम को अनदेखा कर सकते हैं यदि आप -n विकल्प का उपयोग नहीं करते हैं।

उदाहरण के लिए:

Z:\>netstat -an | find ":445"
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
  TCP    127.0.0.1:445          127.0.0.1:41764        ESTABLISHED
  TCP    127.0.0.1:445          127.0.0.1:41767        ESTABLISHED
  TCP    127.0.0.1:41764        127.0.0.1:445          ESTABLISHED
  TCP    127.0.0.1:41767        127.0.0.1:445          ESTABLISHED
  TCP    192.168.16.17:445      192.168.16.87:1098     ESTABLISHED
  TCP    192.168.16.17:18055    192.168.16.24:445      ESTABLISHED
  TCP    192.168.16.17:20678    192.168.16.24:445      ESTABLISHED
  UDP    0.0.0.0:445            *:*

यहां एकमात्र जुड़ा मेजबान 192.168.16.87 है। 192.168.16.24 के कनेक्शन आउटबाउंड हैं। अन्य सभी कनेक्शन स्थानीय कनेक्शन हैं।


हम्म, बस अपने प्रश्न को फिर से पढ़ें, और यह आपकी समस्या को काफी हल नहीं करता है, क्योंकि यह आपको यह नहीं बताता है कि कंप्यूटर ने किस फ़ाइल को खोला है।
ब्रायन

कोई बात नहीं। मैं विचार की सराहना करता हूं।
रॉ

0

मुझे याद है कि इस्तेमाल किए गए शेयरों और लॉक की गई फ़ाइलों की जांच करने के लिए खिड़कियों के भीतर ग्राफिकल टूल था।

यह "कंप्यूटर प्रबंधन" (~ फ्रेंच से अनुवादित ...) के तहत "सिस्टम टूल्स" में होना चाहिए, "साझा फ़ोल्डर्स" नाम के तहत।


0

मुझे पता है कि यह बहुत पुराना है, लेकिन ADSI WinNT: // इंटरफ़ेस प्रदान करता है, जो आपको LANMANSERVER सेवा और क्वेरी को "साझा फ़ोल्डर" mmc स्नैपिन में पहले से उजागर की गई संपत्तियों तक पहुँचने की अनुमति देता है। मैं वर्तमान में एक होस्ट और एक उपयोगकर्ता को एक खुली फ़ाइल से लिंक करने का एक तरीका शोध कर रहा हूं ।


-1

अगर यह मैं था और मेरे पास एक ही सबनेट पर एक लाइनक्स मशीन तक पहुंच थी ... मैं उस बॉक्स के प्रश्न में शेयर पोर्ट पर एक tcpdump करूंगा, जिस फाइल को वे खोल रहे हैं।

यदि आपके पास यूनिक्स नहीं है, तो आप अभी भी tcpdump का उपयोग कर सकते हैं लेकिन आपको इसे स्थापित करना होगा।

linux से ... मैं कुछ इस तरह से करूंगा: tcpdump -ieth0 -s0 -X hostname port 1234 | grep -i "nameoffile"

मुझे पता है कि अधिकांश पेलोड द्विआधारी है ... हालांकि मैं अच्छे पैसे पर शर्त लगाऊंगा कि वे फ़ाइल के उपयोग के लिए प्रमाणीकरण पर बातचीत करने के लिए शुरुआती शीर्ष लेख स्पष्ट पाठ में हैं।

यह आपको हर उस दूर के मेजबान को दिखाएगा जो उस बॉक्स से जुड़ता है और जहां फ़ाइल नाम उनके पैकेट डेटा (यदि एन्क्रिप्टेड या बाइनरी में नहीं है) के भीतर पाया जाता है।

सौभाग्य! लेकिन मेरे अनुभव से, निम्नलिखित का उपयोग किया जाना चाहिए:

1) साझा फ़ाइलें एक बुरा विचार है! विशेष रूप से w / दूरस्थ प्रणालियाँ जो कनेक्शन को छोड़ने या धीमी गति से कनेक्शन होने पर फ़ाइल को लॉक कर सकती हैं।

2) साझा की गई फ़ाइल के लिए एक्सेस करने से ग्राहकों के बीच दौड़ की स्थिति पैदा होगी। मूल्यवान टिक समय बर्बाद करना।

3) यदि आप एक साझा फ़ाइल का उपयोग करना चाहिए ... प्रत्येक दूरस्थ साइट के लिए अलग-अलग उपयोगकर्ता नाम बनाएँ ताकि आप ठीक से डिबग कर सकें।

सर्वश्रेष्ठ परिदृश्य ... फ़ाइल से छुटकारा पाने और SQL में विलय करने या एक वेबसेवा बनाने के लिए जो क्लाइंट को फ़ाइल या डेटा तक पहुंचने की अनुमति देता है।

++ टोड

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.