سؤال

أنا أستخدم CreateService لتثبيت خدمة Windows على Windows XPE. أرغب في إعداد الأشياء حتى يتمكن المسؤول فقط من بدء/إيقاف/إيقاف/استئناف الخدمة.

الآن أنا أستخدم ما يلي لتثبيت الخدمة:

  schService = CreateService(schSCManager,
     ServiceName, 
     ServiceDisplayName, // service name to display
     SERVICE_ALL_ACCESS, // desired access 
     SERVICE_WIN32_OWN_PROCESS, // service type 
     SERVICE_AUTO_START, // start type 
     SERVICE_ERROR_NORMAL, // error control type 
     binaryPathName, // service's binary (this program)
     NULL, // no load ordering group 
     NULL, // no tag identifier 
     NULL, // no dependencies
     NULL, // LocalSystem account
     NULL); // no password

وينتهي الخدمة بالأمان بحيث يمكن لأعضاء مجموعة Powerusers بدء الخدمة وإيقافها. لقد اكتشفت أنه يمكنني استخدام SC SDSHOW لفحص واصف الأمان ، وقد عملت على خط SDDL من شأنه أن يفعل الشيء الصحيح بالنسبة لنا.

لقد تعلمت أيضًا أن تثبيت Win XPE الخاص بنا لا يحتوي على SC.Exe ثنائيًا عليه ، لذلك لا يمكننا استخدام ذلك لإعداد هذا النظام بالذات.

لذا ، ما أحتاج إلى معرفته هو: ما هي واجهات برمجة التطبيقات التي أحتاج إلى استخدامها ، لتعيين واصف الأمان على هذه الخدمة في الوقت الذي أقوم فيه بإجراء مكالمة CreateService. أنا غير معتاد تمامًا على واجهات برمجة تطبيقات Windows Security ، لذلك لا أعرف من أين أبدأ.

تحديث: الإجابة هي setServiceObjectSecurity (أدناه). السؤال التالي: ما هي أفضل طريقة لإعداد SecurityDescriptor؟ هل من الأفضل الحصول على الواصف الافتراضي ، ثم تعديله؟ أم يجب أن أقوم بإنشاء واصف جديد تمامًا؟

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

المحلول

لست على دراية بـ Windows XP مضمنًا ، ولكن عادةً ستحقق ما أنت عليه بعد استخدام setServiceObjectSecurity وظيفة. استخدم المقبض الذي تحصل عليه من CreateService وإنشاء واصف أمان يطابق ما تريد.

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