Frage

Ich verwende createService, um einen Windows -Dienst unter Windows XPE zu installieren. Ich möchte Dinge einrichten, damit nur der Administrator den Dienst starten/stoppen/pausieren/wieder aufnehmen kann.

Im Moment verwende ich Folgendes, um den Dienst zu installieren:

  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

Und der Dienst landet mit Sicherheit, so dass Mitglieder der Powerusers -Gruppe den Service starten und stoppen können. Ich habe herausgefunden, dass ich SC SDshow verwenden kann, um den Sicherheitsdeskriptor zu untersuchen, und ich habe eine SDDL -Linie ausgearbeitet, die das Richtige für uns tun würde.

Ich habe auch erfahren, dass unsere Win XPE -Installation nicht die SC.exe -Binärdatum enthält, daher können wir das nicht wirklich verwenden, um dieses bestimmte System einzurichten.

Ich muss also wissen: Was sind die APIs, die ich verwenden muss, um den Sicherheitsdeskriptor in diesem Dienst zu dem Zeitpunkt zu setzen, als ich den CreateService -Anruf mache. Ich bin mit den Windows Security -APIs völlig nicht vertraut, daher weiß ich einfach nicht, wo ich anfangen soll.

UPDATE: Die Antwort ist setServiceObjectSecurity (unten). Nächste Frage: Was ist der beste Weg, um den SecurityDescriptor einzurichten? Ist es am besten, den Standard -Deskriptor zu erhalten und ihn dann zu ändern? Oder sollte ich einfach einen völlig neuen Deskriptor erstellen?

War es hilfreich?

Lösung

Ich bin mit Windows XP Embedded nicht wirklich vertraut, aber normalerweise würden Sie das erreichen, was Sie nach der Verwendung der verwendet haben SetServiceObjectSecurity Funktion. Verwenden Sie den Griff, den Sie von CreateService erhalten, und erstellen Sie einen Sicherheitsdeskriptor, der dem entspricht, was Sie wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top