【发布时间】:2016-12-09 00:35:27
【问题描述】:
我正在尝试创建一个有权创建其他服务的 Windows 服务。但我不希望使用管理登录名运行此服务。
否则用户权限非常有限 - 我只需要它能够根据请求启动服务。
我看到网上提到 SC_MANAGER_CREATE_SERVICE 是您现在可以分配和/或更改的权限,但我没有看到太多关于如何完成的内容。提到能够通过 subinacl、OpenSCManager 和 - gulp - sc 命令更改单个服务的权限。但这些示例展示了如何更改单个服务的权限,而不是如何授予用户 SC_MANAGER_CREATE_SERVICE 权限。
但是,我注意到 CreateService 上的文档明确指出它需要管理员权限 - 所以也许根本不可能。
我是否必须使用管理员帐户启动服务?或者有谁知道另一个技巧?
【问题讨论】:
-
是因为什么原因你不能使用 LocalService 帐户?
-
CreateService()文档中的任何内容都没有明确说明需要管理员权限(尽管这是有道理的,因为它写入注册表中的HKEY_LOCAL_MACHINE),只有OpenSCManager()必须调用SC_MANAGER_CREATE_SERVICE在dwDesiredAccess参数中指定。