我有自己的自定义Windows服务,我希望管理员或非管理员的每个用户都应该能够启动/停止或查询状态及其启动类型。我正在使用ServiceManager在C ++中执行此操作,如果我在非管理员模式下运行,它在OpenService()上返回NULL。即使在非管理员模式下,我也希望处理服务。
我通过互联网进行了搜索,可能会让非管理员更改/启动或停止服务并不是一个好主意,但我需要这样做。我要么不想让服务的DACL变得复杂,因为除了Admin和Non管理员之外,一切都很完美。因此,我希望有一个更简单的解决方案,让OpenService返回Handle,尽管用户不是Admin。
这是我想要做的事情
schService = OpenService(schSCManager, MyServicename, SERVICE_QUERY_STATUS | SERVICE_START);
以上语句为非管理员返回NULL,我不想这样做。我可以根据我的要求获得其他任何访问模式吗?
谢谢,