2008-10-30 12 views
7

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

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

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

हालांकि, जब सॉफ़्टवेयर विंडोज शेयर (यूएनसी नाम) से कनेक्ट करने का प्रयास करता है तो यह कनेक्ट नहीं हो सकता है। जबकि अगर निष्पादन योग्य मैन्युअल रूप से शुरू किया गया था तो यह ठीक से जुड़ता है।

इस तरह के मुद्दों को हल करने के लिए मैंने आमतौर पर जो सुझाव देखा है, वे सभी उपयोगकर्ता खाते का उपयोग करते हैं क्योंकि सिस्टम खाता नेटवर्क शेयरों तक नहीं पहुंच सकता है, लेकिन हमारे मामले में यह संभव नहीं है। क्या कोई अन्य तरीका है जिससे हम इसे काम कर सकें?

संपादित करें: मैं यह उल्लेख करना भूल गया था कि यह एप्लिकेशन Win2K पर XP (और आमतौर पर होगा) पर चल सकता है, और मुझे लगता है कि मैं यह कहकर सही हूं कि स्थानीय नेटवर्क खाता XP से पहले उपलब्ध नहीं है?

उत्तर

6

यदि आप अपनी विंडोज सेवा बदल सकते हैं ताकि यह नेटवर्क सेवा खाते के अंतर्गत चल सके, तो आपका निष्पादन योग्य नेटवर्क शेयरों तक पहुंच पाएगा (यह एक कारण है कि नेटवर्क सेवा खाता बनाया गया था)।

स्थानीय सिस्टम और स्थानीय सेवा खातों में कोई नेटवर्क प्रमाण-पत्र नहीं है, और इस प्रकार नेटवर्क पर प्रमाणीकृत नहीं किया जा सकता है। यह डिजाइन द्वारा है।

संपादित करें: आईआईआरसी, नेटवर्क सेवा खाता सर्वर 2003 में पेश किया गया था, और एक XP सर्विस पैक में जोड़ा गया।

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

+0

धन्यवाद। आपका आखिरी सुझाव मेरे मामले में ऐसा करने का तरीका दिखता है, मैंने एक समर्पित खाता बनाया है और मैं इस खाते और CreateProcessAsUser() का उपयोग करके अपना निष्पादन योग्य प्रारंभ करने में सक्षम हूं, तो ऐसा लगता है कि यह नेटवर्क शेयर तक पहुंचने में सक्षम है (यदि यह प्रशासक समूह में है) ... –

+0

जाहिर है, आपको अपने समर्पित खाते को शेयर तक उचित पहुंच प्रदान करनी है। –

4

जब आपके पास ऐसी सेवा है जो NT प्राधिकरण \ LOCALSYSTEM (जो सेवा खाते का नाम है) के अंतर्गत चलती है, तो यह नेटवर्क के बाकी हिस्सों में DOMAINNAME \ COMPUTERNAME $ ($ sign नोट) खाते के रूप में दिखाई देता है। यही है, यह सक्रिय निर्देशिका में कंप्यूटर के खाते के रूप में प्रतीत होता है। बस अपनी फ़ाइल दें और DOMAINNAME \ COMPUTERNAME $ पर अनुमतियां साझा करें और आपको अच्छा होना चाहिए।

0

आप दूसरे खाते का उपयोग क्यों नहीं कर सकते? विंडोज में एक नेटवर्क सेवा खाता बनाया गया है, खासकर उन सेवाओं के लिए जिन्हें नेटवर्क एक्सेस की आवश्यकता है।

वैसे भी, एक सेवा शुरू करने के दौरान बहुत सावधान रहें।

यदि exe के साथ फ़ोल्डर में लेखन पहुंच अक्षम नहीं है, तो उपयोगकर्ता उस exe को प्रतिस्थापित कर सकता है (उदाहरण के लिए) cmd.exe। अगली बार जब सेवा आपके exe शुरू करने का प्रयास करती है, voilà: सिस्टम अधिकारों के साथ एक कमांड खोल!

+0

या बेहतर अभी तक, cmd.exe का नाम exe के लिए सेवा शुरू होता है जब सेवा चालू नहीं होती है और कंप्यूटर को पुनरारंभ करता है :) –

संबंधित मुद्दे

 संबंधित मुद्दे