تثبيت خدمة Windows XPE - كيفية ضبط الأمان في وقت CreateService؟
-
24-09-2019 - |
سؤال
أنا أستخدم 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 وإنشاء واصف أمان يطابق ما تريد.