使用 Windows 服务,以便服务器始终在一致的上下文中运行。
配置服务,以便客户端可以根据需要启动它:
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;
ConvertStringSecurityDescriptorToSecurityDescriptor(sddl, SDDL_REVISION_1, &sd, NULL);
SetServiceObjectSecurity(service, DACL_SECURITY_INFORMATION, sd);
您可能需要稍微调整 ACL 以满足您的精确需求。请注意,为简单起见,已排除错误检查。
客户端可以根据StartService
需要使用该功能启动服务。