Memulakan Perkhidmatan Windows daripada Aplikasi tanpa Hak Pentadbir (C )
Soalan:
Bagaimana bolehkah pengguna memulakan atau menghentikan perkhidmatan Windows daripada aplikasi bukan pentadbir tanpa memerlukan hak pentadbir?
Jawapan:
Untuk memberikan pengguna bukan pentadbir keupayaan untuk memulakan dan menghentikan perkhidmatan Windows, ubah suai kebenaran perkhidmatan. Proses ini sebaiknya dilakukan semasa pemasangan perkhidmatan.
Gunakan langkah berikut:
<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>
Untuk memberikan pengguna bukan pentadbir hak untuk menghentikan perkhidmatan juga, sertakan WP kanan dalam rentetan SDDL:
<code class="pre">L"(A;;RPWP;;;IU)" // added permissions: start service, stop service for interactive users</code>
Rujuk entri blog Wayne Martin untuk kod SDDL tambahan untuk hak perkhidmatan.
Atas ialah kandungan terperinci Bagaimanakah Pengguna Bukan Pentadbir Boleh Memulakan dan Menghentikan Perkhidmatan Windows dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!