Maison > Article > développement back-end > Comment les utilisateurs non-administrateurs peuvent-ils démarrer et arrêter les services Windows en C ?
Démarrage du service Windows à partir d'une application sans droits d'administrateur (C)
Question :
Comment Un utilisateur peut-il démarrer ou arrêter un service Windows à partir d'une application non-administrateur sans avoir besoin de droits d'administrateur ?
Réponse :
Pour accorder aux utilisateurs non-administrateurs la possibilité pour démarrer et arrêter un service Windows, modifiez les autorisations du service. Ce processus doit idéalement être effectué lors de l'installation du service.
Procédez comme suit :
<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>
Pour accorder aux utilisateurs non-administrateurs le droit d'arrêter également le service, incluez le droit WP dans la chaîne SDDL :
<code class="pre">L"(A;;RPWP;;;IU)" // added permissions: start service, stop service for interactive users</code>
Reportez-vous à l'entrée de blog de Wayne Martin pour des codes SDDL supplémentaires pour droits de service.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!