2011-05-10 14 views
7

से प्रारंभ करें मैं सेवा से किसी अन्य उपयोगकर्ता के रूप में प्रक्रिया को चलाने की कोशिश कर रहा हूं।प्रक्रिया निष्पादित करते समय एक्सेस अस्वीकृत। विंडोज सेवा

Process.Start(applicationPath, params, account, SecureStringPassword, ""); 

एक सेवा "स्थानीय सिस्टम" खाते के अंतर्गत चल रही है।

account पैरामीटर "वर्कस्टेशन 6 \ परीक्षक" जैसी स्ट्रिंग है। यह उपयोगकर्ता व्यवस्थापक समूह का सदस्य है।

"एप्लिकेशन पथ" प्रोग्राम फ़ाइलों को संदर्भित करता है, इसलिए प्रत्येक उपयोगकर्ता इसे पढ़ सकता है।

लेकिन जब भी मैं प्रक्रिया शुरू करने का प्रयास करता हूं तो मेरे पास "एक्सेस अस्वीकृत" अपवाद होता है। आप क्या सलाह दे सकते हैं?

+0

आप में [प्रक्रिया मॉनिटर] (http इसे देखने की कोशिश की है। microsoft.com/en-us/sysinternals/bb896645)? यह आपको बिल्कुल दिखा सकता है कि यह किस तक पहुंच नहीं सकता है। लेकिन ऐसा लगता है जैसे उपयोगकर्ता स्विचिंग समस्या हो सकती है। – Rup

+0

मैंने ProcMon की कोशिश की, लेकिन यह मेरे लिए कुछ भी उपयोगी नहीं दिखाता है। लॉग में कोई त्रुटि नहीं है। और उपयोगकर्ता-स्विचिंग समस्या के बारे में क्या? –

उत्तर

0

प्रक्रिया का उपयोग करने का एक उदाहरण है। SecureString पृष्ठ पर प्रारंभ करें। http://msdn.microsoft.com/en-us/library/system.security.securestring(v=VS.90).aspx#Y682

मुझे लगता है कि आप क्या करने की जरूरत है इस तरह पिछले पैरामीटर में आपके उपयोगकर्ता खाते के डोमेन डाल दिया जाता है: // TechNet:

Process.Start(applicationPath, params, "Tester", SecureStringPassword, "WORKSTATION6"); 
+0

यह मदद नहीं करता है। मेरे पास अभी भी "एक्सेस अस्वीकृत त्रुटि" है –

+0

मुझे एक ही समस्या है ... पहले से ही .bat फ़ाइल को कॉल करने का प्रयास किया गया है, WMI, प्रतिरूपण का उपयोग करें, लेकिन कोई सफलता नहीं है। कोई अपडेट @ ई-मैक्स? – Fernando

+7

यह स्वीकार्य उत्तर क्यों है यदि यह काम नहीं करता है? – Edgar

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