java - मैं Windows पर किसी अन्य उपयोगकर्ता खाते के साथ एक नई प्रक्रिया कैसे बना सकता हूं?




process account (4)

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


आपको जावा नेटिव इंटरफ़ेस (जेएनआई) का उपयोग कर एक DLL लिखना होगा क्योंकि आप इसे शुद्ध जावा कोड के साथ नहीं कर सकते।

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


एक कार्यक्रम "runas.exe" नामक है। आप उस प्रक्रिया को चला सकते हैं और आपकी प्रक्रिया और उपयोगकर्ता नाम / पासवर्ड के लिए उपयुक्त तर्क प्रदान कर सकते हैं। मुझे लगता है कि यह सबसे आसान तरीका है


रुनास में "/ बचाया गया" स्विच होता है जो आपको केवल पहली बार क्रेडेंशियल दर्ज करने देता है एक संभावित समस्या यह है कि जब / सेचक्र्रेड क्रेडेंशियल्स को बचाता है, तब भी जब वह RUNAS उस उपयोगकर्ता खाते को आमंत्रित करता है। यह एक बड़ा सुरक्षा जोखिम हो सकता है, इसलिए इसका उपयोग करके सावधान रहें!

उदाहरण http://www.rgagnon.com/javadetails/java-0014.html (अंत में)


मैं बस runas.exe प्रोग्राम को MiniRunAs नामक एक विकल्प के लिए चलाया है जो कमांड लाइन पर पासवर्ड लेगा - http://www.source-code.biz/snippets/c/1.htm

यदि आप इसे अपने आवेदन के साथ स्थापित करने में सक्षम हैं, जो एक जेएनआई डीएलएल लिखने से सरल साबित हो सकता है








account