2010-05-01 15 views
5

मैंने एक विंडोज सेवा बनाई है जो डब्ल्यूसीएफ के माध्यम से रिमोट मशीनों से कमांड स्वीकार करता है। उन आदेशों में से एक निर्दिष्ट निष्पादन योग्य चलाने के लिए है (चलिए इस तरह की कार्यक्षमता के सुरक्षा प्रभावों को अनदेखा करते हैं)।.NET प्रक्रिया। स्टार्ट() रिमोट सिस्टम पर निष्पादन योग्य पर - सुरक्षा चेतावनी?

मेरी सेवा में मैं निष्पादन योग्य चलाने के लिए Process.Start() का उपयोग कर रहा हूं। निष्पादन योग्य मशीन के लिए स्थानीय होने पर सभी ठीक काम करते हैं, लेकिन अगर यह रिमोट फाइल शेयर पर है तो यह कोई त्रुटि नहीं है (या अधिक सटीक रूप से लटक रहा है)। मुझे संदेह है कि समस्या यह है कि यह मानक विंडोज 'असत्यापित प्रकाशक' चेतावनी को ट्रिगर कर रहा है कि कोई यह देखेगा कि क्या वे रिमोट सिस्टम पर एक्सई पर डबल क्लिक करते हैं।

क्या कोई तरीका है कि मैं इसे अपनी सेवा से बाईपास कर सकता हूं ताकि मैं वास्तव में किसी निष्पादन योग्य को चला सकूं? जैसा कि मैंने कहा था कि मैं इसे निष्पादन योग्य चलाने की अनुमति देने के सुरक्षा प्रभावों को समझता हूं, लेकिन यह वास्तव में मुझे चाहिए। मैंने सोचा होगा कि यह चेतावनी केवल एक उपयोगकर्ता मोड अवधारणा थी, लेकिन यह वास्तव में मेरी सेवा के रास्ते में हो रही प्रतीत होती है।

विचार?

+0

@ ब्रेट्रोबी: सी # में कोई प्रक्रिया नहीं है। स्टार्ट विधि। –

उत्तर

2

मुझे एक ही समस्या थी। और आप 'असत्यापित प्रकाशक' चेतावनी के बारे में सही हैं।

मेरा समाधान EXE को स्थानीय रूप से% TEMP% फ़ोल्डर में कॉपी करना था और इसे वहां से लात मारना था। मेरे मामले में, यह इष्टतम था क्योंकि EXE की कोई निर्भरता नहीं थी।

+0

मैं इसका सहारा नहीं लेना चाहता था लेकिन यह तब तक काम करता है जब तक कोई निर्भरता न हो। ऐसा कोई अन्य कामकाज नहीं होता है, इसलिए क्रोधित करने वाला धन्यवाद। – BrettRobi

+3

इसके साथ खेलने के बाद मैंने अपने मामले में सही समस्या की खोज की। मुझे StartInfo.UseShellExecute = false सेट करने की आवश्यकता थी; इस प्रश्न को देखें: http://stackoverflow.com/questions/2790071/starting-a-process-from-a-net-windows-service/2791053#2791053 – BrettRobi

1

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

+0

मैं व्यवस्थापक निजी के साथ एक खाते के तहत सेवा चला रहा हूँ। हालांकि विचार के लिए धन्यवाद। – BrettRobi

0

शायद आपको .NET फ्रेमवर्क रनटाइम सुरक्षा नीति और ज़ोन सुरक्षा सेटिंग्स समायोजित करना चाहिए।

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