كيف يمكنني إنشاء عملية جديدة مع حساب مستخدم آخر على ويندوز ؟

StackOverflow https://stackoverflow.com/questions/362198

  •  21-08-2019
  •  | 
  •  

سؤال

هل من الممكن إنشاء عملية جديدة على نظام التشغيل windows باستخدام حساب مستخدم مختلف?أعرف أن هناك قائمة السياق "تشغيل كـ" ولكن أريد أن تفعل ذلك من جافا.لدي المستخدم و كلمة المرور.

هل كانت مفيدة؟

المحلول

تحتاج إلى كتابة DLL باستخدام جافا واجهة الأصلية (JNI) كما لا يمكنك أن تفعل هذا مع خالص كود جافا.

DLL نفسه يحتاج إلى دعوة كريتيبروسيساسوسير وظيفة لإنشاء العملية في سياق مستخدم آخر.لإنشاء بنجاح هذه العملية تحتاج إلى تقديم المميز للوصول إلى الوظيفة التي كانت هي نفسها التي تم إنشاؤها عن طريق الاتصال LogonUser وظيفة (فإنه يأخذ اسم المستخدم وكلمة المرور إلى authentify أن المستخدمين الآخرين).

نصائح أخرى

وهناك برنامج يسمى "runas.exe". هل يمكن تشغيل هذه العملية وتوفير الوسائط المناسبة لعملية الخاص بك واسم المستخدم / كلمة المرور. أعتقد أن هذا هو أبسط طريقة.

وجريت عبر بديلا لبرنامج runas.exe دعا MiniRunAs والتي سوف تحل كلمة على سطر الأوامر - <وأ href = "http://www.source-code.biz/snippets/c/1. هتم "يختلط =" نوفولو noreferrer "> http://www.source-code.biz/snippets/c/1.htm

إذا كنت قادرا على تثبيت جنبا إلى جنب مع التطبيق الخاص بك، التي قد تكون أبسط من كتابة JNI DLL.

اعتمادا على الاحتياجات الخاصة بك Win32 API "CreateProcessWithLogonW"هو أسهل استخداما من "كريتيبروسيساسوسير / LogonUser" وظائف.

من MSDN مستندات:

The CreateProcessWithLogonW and CreateProcessWithTokenW functions are
similar to the CreateProcessAsUser function, except that the caller 
does not need to call the LogonUser function to authenticate the user 
and get a token

وRUNAS لديه "/ savecred" التبديل التي تمكنك من دخول الاعتماد فقط في المرة الأولى. مشكلة واحدة محتملة هي أنه عندما ينقذ / SaveCred وثائق التفويض فإنه يحفظ لمدة كلما استدعاء RUNAS حساب المستخدم. هذا يمكن أن يكون خطرا أمنيا كبيرا حتى نكون حذرين استخدامه!

مثال على http://www.rgagnon.com/javadetails/java-0014 هتمل (في النهاية)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top