मेरे पास एक विंडोज़ सेवा द्वारा शुरू किया गया एक निष्पादन योग्य है, यह प्रोग्राम एक ग्राहक मशीन पर चलाया जाएगा और इसे निष्पादित करने के लिए रिमोट शेयर से कनेक्ट करने की आवश्यकता होगी एक विशेष कार्य यह शेयर ग्राहक द्वारा यूआई के माध्यम से निर्दिष्ट किया जाता है, इसलिए हम इसे पहले से नहीं जानते हैं जिसका अर्थ है कि इसे "हार्ड-कोडेड" नहीं किया जा सकता है, या शेयर पहले से मैप किया जा सकता है।स्थानीय सिस्टम खाते का उपयोग कर विंडोज़ सेवा द्वारा निष्पादित निष्पादन योग्य नेटवर्क शेयरों का उपयोग नहीं कर सकता
पहले हमें ग्राहक को अपनी मशीन पर लॉग ऑन करने और लॉग-ऑन पर निष्पादन योग्य चलाने की आवश्यकता थी, लेकिन हम हमेशा हमारे कार्यक्रम को सेवा के भीतर चलाने की अनुमति देना चाहते थे और मुख्य रूप से इसे बनाने के लिए लॉग-इन की आवश्यकता नहीं होती थी ग्राहक के लिए आसान है और हमारे सॉफ़्टवेयर को बंद करने वाले किसी भी आकस्मिक लॉग-आउट को रोकें। तो इसका यह भी अर्थ है कि हम नहीं जानते कि ग्राहक मशीन पर स्थानीय उपयोगकर्ता खाते क्या मौजूद हैं, इसलिए हमें स्थानीय सिस्टम खाते का उपयोग करके सेवा शुरू करनी है।
अब हमारे ऊपर, जैसा कि ऊपर वर्णित है, निष्पादन योग्य शुरू करने और विभिन्न कार्यों को करने के लिए एक रैपर सेवा है। यह ज्यादातर मामलों में ठीक काम करता प्रतीत होता है और अंतर्निहित नेटवर्क ठीक करता है - हमारे सॉफ़्टवेयर के उद्देश्य में मुख्य रूप से पैकेट कैप्चर करना शामिल है।
हालांकि, जब सॉफ़्टवेयर विंडोज शेयर (यूएनसी नाम) से कनेक्ट करने का प्रयास करता है तो यह कनेक्ट नहीं हो सकता है। जबकि अगर निष्पादन योग्य मैन्युअल रूप से शुरू किया गया था तो यह ठीक से जुड़ता है।
इस तरह के मुद्दों को हल करने के लिए मैंने आमतौर पर जो सुझाव देखा है, वे सभी उपयोगकर्ता खाते का उपयोग करते हैं क्योंकि सिस्टम खाता नेटवर्क शेयरों तक नहीं पहुंच सकता है, लेकिन हमारे मामले में यह संभव नहीं है। क्या कोई अन्य तरीका है जिससे हम इसे काम कर सकें?
संपादित करें: मैं यह उल्लेख करना भूल गया था कि यह एप्लिकेशन Win2K पर XP (और आमतौर पर होगा) पर चल सकता है, और मुझे लगता है कि मैं यह कहकर सही हूं कि स्थानीय नेटवर्क खाता XP से पहले उपलब्ध नहीं है?
धन्यवाद। आपका आखिरी सुझाव मेरे मामले में ऐसा करने का तरीका दिखता है, मैंने एक समर्पित खाता बनाया है और मैं इस खाते और CreateProcessAsUser() का उपयोग करके अपना निष्पादन योग्य प्रारंभ करने में सक्षम हूं, तो ऐसा लगता है कि यह नेटवर्क शेयर तक पहुंचने में सक्षम है (यदि यह प्रशासक समूह में है) ... –
जाहिर है, आपको अपने समर्पित खाते को शेयर तक उचित पहुंच प्रदान करनी है। –