在没有管理员权限的情况下从应用程序启动 Windows 服务(C )
问题:
如何用户可以在不需要管理员权限的情况下从非管理员应用程序启动或停止 Windows 服务吗?
答案:
授予非管理员用户此功能要启动和停止 Windows 服务,请修改服务权限。理想情况下,此过程应在服务安装期间执行。
使用以下步骤:
<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>
要授予非管理员用户停止服务的权利,请将 WP 权限包含在 SDDL 字符串中:
<code class="pre">L"(A;;RPWP;;;IU)" // added permissions: start service, stop service for interactive users</code>
请参阅 Wayne Martin 的博客文章以获取其他 SDDL 代码服务权利。
以上是非管理员用户如何用 C 启动和停止 Windows 服务?的详细内容。更多信息请关注PHP中文网其他相关文章!