Mengawal Perkhidmatan Windows daripada Aplikasi Tanpa Keistimewaan Pentadbir
Perkhidmatan Windows menyediakan cara yang mudah untuk menjalankan tugas yang berjalan lama di latar belakang tanpa campur tangan pengguna . Walau bagaimanapun, secara lalai, memulakan atau menghentikan perkhidmatan ini memerlukan hak pentadbir. Ini menimbulkan had untuk aplikasi yang perlu mengurus perkhidmatan bagi pihak pengguna.
Penyelesaian
Penyelesaian kepada masalah ini terletak pada mengubah suai kebenaran objek perkhidmatan. Ini membolehkan aplikasi berinteraksi dengan perkhidmatan tanpa memerlukan keistimewaan yang tinggi. Berikut ialah pendekatan yang dicadangkan menggunakan 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>
Penjelasan
Kod ini membuka deskriptor keselamatan perkhidmatan yang ditentukan dan mengubah suai DACL (senarai kawalan akses budi bicaranya). Ia menambah ACE baharu (entri kawalan akses) yang memberikan hak "Mulakan Perkhidmatan" kepada pengguna interaktif (pengguna bukan pentadbir).
Untuk menghentikan perkhidmatan juga, tambahkan hak "Hentikan Perkhidmatan" (WP ) ke senarai:
<code class="c++">L"(A;;RPWP;;;IU)" // added permissions: start service, stop service for interactive users</code>
Dengan mengubah suai kebenaran objek perkhidmatan, anda boleh memperkasakan aplikasi dengan keupayaan untuk mengurus perkhidmatan Windows dengan lancar tanpa memerlukan peningkatan pentadbir.
Atas ialah kandungan terperinci Bagaimanakah Aplikasi Boleh Mengawal Perkhidmatan Windows Tanpa Keistimewaan Pentadbir?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!