Question

J'utilise CreateService pour installer un service Windows sur Windows XPE. Je voudrais configurer les choses afin que seul l'administrateur puisse démarrer / arrêter / pause / reprendre le service.

En ce moment, j'utilise ce qui suit pour installer le service:

  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

Et le service se retrouve avec la sécurité de telle sorte que les membres du groupe PowerSers puissent démarrer et arrêter le service. J'ai compris que je peux utiliser SC SDShow pour examiner le descripteur de sécurité, et j'ai élaboré une ligne SDDL qui ferait la bonne chose pour nous.

J'ai également appris que notre installation Win XPE n'a pas le binaire sc.exe dessus, nous ne pouvons donc pas vraiment l'utiliser pour configurer ce système particulier.

Donc, ce que je dois savoir, c'est: quelles sont les API que je dois utiliser, pour définir le descripteur de sécurité sur ce service au moment où je fais l'appel CreateService. Je ne suis pas complètement familier avec les API de sécurité Windows, donc je ne sais tout simplement pas par où commencer.

MISE À JOUR: La réponse est SetServiceObjectSecurity (ci-dessous). Question suivante: Quelle est la meilleure façon de configurer le Sécurité Descripteur? Est-il préférable d'obtenir le descripteur par défaut, puis de le modifier? Ou devrais-je simplement créer un tout nouveau descripteur?

Était-ce utile?

La solution

Je ne suis pas vraiment familier avec Windows XP intégré, mais normalement vous réaliseriez ce que vous êtes après avoir utilisé SetServiceObjectSecurity fonction. Utilisez la poignée que vous obtenez de CreateService et créez un descripteur de sécurité qui correspond à ce que vous voulez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top