C++ 允许非管理员用户查询和启动Windows服务

C++ 允许非管理员用户查询和启动Windows服务,c++,windows,service,C++,Windows,Service,我有自己的自定义windows服务,我希望每个管理员或非管理员用户都能够启动/停止或查询状态及其启动类型。我正在使用Service MeMaGER在C++中这样做,如果我在非管理员模式下运行,它将返回OpenService()上的NULL。我想处理服务,即使在非管理模式 我在互联网上搜索,可能会发现允许非管理员更改/启动或停止服务不是一个好主意,但我需要这样做。我也不想让更改服务的DACL变得复杂,因为除了这个管理和非管理的东西之外,一切都很好地工作。因此,我希望有一个更简单的解决方案,使Ope

我有自己的自定义windows服务,我希望每个管理员或非管理员用户都能够启动/停止或查询状态及其启动类型。我正在使用Service MeMaGER在C++中这样做,如果我在非管理员模式下运行,它将返回OpenService()上的NULL。我想处理服务,即使在非管理模式

我在互联网上搜索,可能会发现允许非管理员更改/启动或停止服务不是一个好主意,但我需要这样做。我也不想让更改服务的DACL变得复杂,因为除了这个管理和非管理的东西之外,一切都很好地工作。因此,我希望有一个更简单的解决方案,使OpenService返回句柄,尽管用户不是管理员

这就是我要做的

schService = OpenService(schSCManager, MyServicename, SERVICE_QUERY_STATUS | SERVICE_START);
上面的语句为非管理员返回NULL,我不想这样做。是否有任何其他访问模式,我可以得到我的要求


谢谢,

在不更改DACL的情况下,无法允许非管理员用户启动服务。但这样做并不复杂,只有十几行代码。看见请注意,默认权限已允许非管理员用户查询服务状态。的可能重复