Windows-Dienste über Anwendungen ohne Administratorrechte steuern
Windows-Dienste bieten eine bequeme Möglichkeit, lang laufende Aufgaben im Hintergrund ohne Benutzereingriff auszuführen . Allerdings sind zum Starten oder Stoppen dieser Dienste standardmäßig Administratorrechte erforderlich. Dies stellt eine Einschränkung für Anwendungen dar, die Dienste im Auftrag von Benutzern verwalten müssen.
Lösung
Die Lösung für dieses Problem liegt in der Änderung der Berechtigungen des Dienstobjekts. Dadurch können Anwendungen mit dem Dienst interagieren, ohne dass erhöhte Berechtigungen erforderlich sind. Hier ist ein vorgeschlagener Ansatz mit C:
<code class="c++">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 ; PSECURITY_DESCRIPTOR sd; if (!ConvertStringSecurityDescriptorToSecurityDescriptor(sddl, SDDL_REVISION_1, &sd, NULL)) { // Handle error } if (!SetServiceObjectSecurity(service, DACL_SECURITY_INFORMATION, sd)) { // Handle error }</code>
Erklärung
Dieser Code öffnet die Sicherheitsbeschreibung des angegebenen Dienstes und ändert seine DACL (Discretionary Access Control List). Es fügt einen neuen ACE (Zugriffskontrolleintrag) hinzu, der interaktiven Benutzern (Benutzern ohne Administratorrechte) das Recht „Dienst starten“ gewährt.
Um den Dienst ebenfalls zu stoppen, fügen Sie das Recht „Dienst stoppen“ hinzu (WP ) zur Liste:
<code class="c++">L"(A;;RPWP;;;IU)" // added permissions: start service, stop service for interactive users</code>
Durch Ändern der Berechtigungen des Dienstobjekts können Sie Anwendungen mit der Möglichkeit ausstatten, Windows-Dienste nahtlos zu verwalten, ohne dass eine Administratorberechtigung erforderlich ist.
Das obige ist der detaillierte Inhalt vonWie können Anwendungen Windows-Dienste ohne Administratorrechte steuern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!