के रूप में चलने वाली प्रक्रिया से उपयोगकर्ता के रूप में एक प्रक्रिया प्रारंभ करें, मैं एक और प्रोग्राम शुरू करना चाहता हूं जो व्यवस्थापक के रूप में चल रहे प्रोग्राम से उपयोगकर्ता के रूप में चलता है।व्यवस्थापक को
समस्या यह है कि दूसरे प्रोग्राम को दृष्टिकोण का उपयोग करने की आवश्यकता है, यदि प्रोग्राम व्यवस्थापक के रूप में चलता है तो यह संभव नहीं है। मुख्य कार्यक्रम व्यवस्थापक के रूप में चलाने की जरूरत है।
मैं पहले से ही इस दो समाधान के साथ आया था:
Process.Start("cmd.exe", @"/C runas.exe /savecred /user:" + Environment.UserDomainName + "\\" + Environment.UserName + " " + "\"SomeProgram.exe" + "\"");
या
Process.Start("explorer.exe", "SomeProgram.exe");
लेकिन मैं दोनों के समाधान के साथ एक समस्या है। पहला व्यक्ति पासवर्ड के लिए उपयोगकर्ता से पूछता है (केवल विंडोज़ को पुनरारंभ करने के बाद पहली बार)। दूसरे एक प्रोबल्बी ने भविष्य में काम नहीं किया, क्योंकि जहां तक मुझे पता चला कि इसे एक बग के रूप में माना जाता है और शायद भविष्य के अपडेट के साथ तय किया जाता है।
तो मुझे पता है कि कोई अन्य समाधान है, जहां उपयोगकर्ता को अपना पासवर्ड दर्ज करने की आवश्यकता नहीं है?
यह मेरे लिए काम करने के लिए लगता है:
Process.Start("cmd.exe", @"/C runas.exe /TrustLevel:0x20000 " + "\"SomeProgram.exe" + "\"");
रेमंड चेन में इस का वर्णन करने का एक अच्छा काम किया है [मैं अपने ऊपर उठाया प्रक्रिया से एक unelevated प्रक्रिया का शुभारंभ और इसके विपरीत कर सकते हैं कैसे?] (Http://blogs.msdn.com/b/oldnewthing/archive/ 2013/11/18/10468726.aspx) (जिसमें सभी प्रकार के विवरण भी शामिल हैं जैसे कि जब ऊंचाई ने शेष सत्र के लिए उपयोग किए जाने वाले लोगों के लिए अलग-अलग खाता प्रमाण-पत्रों का उपयोग किया) –
लेकिन यह उपयोग करने का एक और तरीका नहीं है नौकरी करने के लिए exploer.exe? वैसे भी मुझे एक और समाधान मिला, मैंने इसे मूल पोस्ट में जोड़ा। – FKorni
क्या आपका समाधान ऐलिस के व्यवस्थापक खाते से बॉब के उपयोगकर्ता खाते (रेमंड्स लिंक से उदाहरणों का उपयोग करके) को डी-एलिवेट करने के साथ सही तरीके से सौदा करता है? –