Heim >Backend-Entwicklung >C++ >Wie können Benutzer ohne Administratorrechte Windows-Dienste in C starten und stoppen?
Starten des Windows-Dienstes aus der Anwendung ohne Administratorrechte (C)
Frage:
Wie Kann ein Benutzer einen Windows-Dienst von einer Nicht-Administratoranwendung aus starten oder stoppen, ohne dass Administratorrechte erforderlich sind?
Antwort:
Um Benutzern ohne Administratorrechte die Möglichkeit zu gewähren Um einen Windows-Dienst zu starten und zu stoppen, ändern Sie die Dienstberechtigungen. Dieser Vorgang sollte idealerweise während der Dienstinstallation durchgeführt werden.
Verwenden Sie die folgenden Schritte:
<code class="pre">wchar_t sddl[] = L"D:" L"(A;;CCLCSWRPWPDTLOCRRC;;;SY)" // default permissions for local system L"(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)" // default permissions for administrators L"(A;;CCLCSWLOCRRC;;;AU)" // default permissions for authenticated users L"(A;;CCLCSWRPWPDTLOCRRC;;;PU)" // default permissions for power users L"(A;;RP;;;IU)" // added permission: start service for interactive users ;</code>
<code class="pre">PSECURITY_DESCRIPTOR sd; if (!ConvertStringSecurityDescriptorToSecurityDescriptor(sddl, SDDL_REVISION_1, &sd, NULL)) { fail(); } if (!SetServiceObjectSecurity(service, DACL_SECURITY_INFORMATION, sd)) { fail(); }</code>
Um auch Benutzern ohne Administratorrechte das Recht zu gewähren, den Dienst zu beenden, fügen Sie das WP-Recht in die SDDL-Zeichenfolge ein:
<code class="pre">L"(A;;RPWP;;;IU)" // added permissions: start service, stop service for interactive users</code>
Weitere SDDL-Codes finden Sie im Blogeintrag von Wayne Martin Servicerechte.
Das obige ist der detaillierte Inhalt vonWie können Benutzer ohne Administratorrechte Windows-Dienste in C starten und stoppen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!