Pregunta

Estoy usando CreateService para instalar un servicio de Windows en Windows XPE. Me gustaría configurar las cosas para que solo el administrador pueda iniciar/detener/pausar/reanudar el servicio.

Ahora mismo estoy usando lo siguiente para instalar el servicio:

  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

Y el servicio termina con seguridad de modo que los miembros del grupo Powerusers pueden comenzar y detener el servicio. He descubierto que puedo usar SC SDShow para examinar el descriptor de seguridad, y he resuelto una línea SDDL que haría lo correcto por nosotros.

También aprendí que nuestra instalación Win XPE no tiene el binario SC.EXE, por lo que realmente no podemos usar eso para configurar este sistema en particular.

Entonces, lo que necesito saber es: ¿Cuáles son las API que necesito usar, para establecer el descriptor de seguridad en este servicio? No estoy completamente familiarizado con las API de seguridad de Windows, así que no sé por dónde empezar.

ACTUALIZACIÓN: La respuesta es SetServiceObjectSecurity (a continuación). Siguiente pregunta: ¿Cuál es la mejor manera de configurar el Descriptor de Security? ¿Es mejor obtener el descriptor predeterminado y luego modificarlo? ¿O debería crear un descriptor completamente nuevo?

¿Fue útil?

Solución

No estoy realmente familiarizado con Windows XP incrustado, pero normalmente lograrías lo que eres después de usar el SetServiceObjectSecurity función. Use el mango que obtiene de CreateService y cree un descriptor de seguridad que coincida con lo que desea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top