سؤال

عندما أقوم بتشغيل خدمة كحساب Localsystem، يمكنني استخدام الرموز التالية لإطلاق برنامج GUI ضمن حساب تسجيل الدخول الحالي:

WTSGETACTIVECONSONESTYID-> WTSQUEREUSERTONKEN-> createProcessasuser

ومع ذلك، عندما أقوم بتشغيل الخدمة كحسابك الشخصي، لن يظهر برنامج GUI. أستطيع أن أرى ذلك في مدير المهام رغم ذلك.

ما الذي يجب علي فعله لإطلاق برنامج GUI عند تشغيل الخدمة ضمن حسابي الشخصي؟

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

المحلول

John and Jdigital على حد سواء - من فهمي، يمكن أن تحتوي الخدمات بشكل عام على إمكانية الوصول إلى سطح المكتب (عليك استخدام Localsystem) أو الوصول إلى الشبكة (تحتاج إلى تحديد حساب لتشغيله).

ستحتاج إلى قسمين تقسيم تطبيقك إلى اثنين - واحد للتفاعل مع سطح المكتب والآخر للتحدث عبر الشبكة. يمكن للجزأتين أن يتحدثان إلى بعضهما البعض لترحيل المعلومات إلى المستخدم النهائي.

نصائح أخرى

كل ذلك يتعلق الأمر بالأذونات التي أؤمن بها.

يحتوي Localsystem على امتيازات كافية لإنتحال المستخدم الحالي، لكن حسابك لا.

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

(لماذا تريد تشغيل مع حسابك بدلا من Localsystem؟)

أنا متأكد من أن هناك إجابات أكثر شمولا تتعامل معها وفي القيام بذلك، ولكن على مستوى عال أعتقد أن هذه هي المشكلة.

قد تكون قيد التشغيل في محطة نافذة خاطئة أو سطح المكتب. انظر الى هذا مرجع Microsoft على محطات النوافذ وأجهزة الكمبيوتر المكتبية.

أعتقد أن ما تحاول القيام به قد يعتبر ثغرة أمنية. ومن غير المرجح أن يعمل في بعض الحالات أيضا. أعتقد أن JDigital صحيح في أنه يتعلق الأمر بمحطات النوافذ ومحاولة الوصول إلى محطة نافذة المستخدم الحالية وسطح المكتب. هذا مرتبك كثيرا عندما تكون تحت خادم خدمات المحطة الطرفية حيث توجد محطات نافذة متعددة. مايكروسوفت حقا لا تريدك ما تريده، وجعلك أصعبا مع كل إصدار من Windows.

أعتقد أن أفضل رهان لديك هو حل مشكلة زاوية أخرى وإنشاء تطبيق واجهة المستخدم الرسومية التي يديرها المستخدم (مانويللي أو تلقائيا عند تسجيل الدخول) وتحدث إلى خدمتك.

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