是否可以使用组策略授予管理 Windows 服务的权限?
我真的很想知道这是否可能,如果可能的话,您建议我在哪里寻找更多信息?我对 Server 2003 特别感兴趣。
我尝试了一些非常明显的网络搜索,但大多数组策略、Windows 服务或权限(以及类似的组合)的结果最终都讨论了如何通过 GP 启用或禁用特定服务,而不允许用户或组手动执行这些操作。
我的方法可能不太对劲。任何建议都非常感谢。
答案1
您当然可以使用组策略授予用户启动/停止服务的权限。您只需使用“安全”组策略客户端扩展修改服务上的安全描述符即可。
一个非常轻微的警告:我曾经看到过一些服务不喜欢基于组策略的修改对服务施加的默认权限的情况(如果您想了解我在说什么,请查看有关 Windows 搜索服务的这篇帖子:http://peeved.org/blog/2007/12/07),但根据我的经验,这种情况并不常见。
为了在组策略编辑器中“看到”该服务,您需要在安装了该服务的计算机上进行编辑。(如果这是 Windows 的常规服务,那么这没什么大不了的,但如果是第三方服务,则在安装了该服务的计算机上“以 MMC 副本身份运行”,然后针对要放置这些设置的 GPO 插入组策略编辑器。)
在“计算机设置”、“Windows 设置”、“安全设置”和“系统服务”下,找到您要授予启动/停止权限的服务并定义策略设置。您必须选择启动类型。单击“编辑安全”并修改默认 ACL 以包含您要查找的权限。
我建议在一组受限的计算机上测试 GPO(通过将 GPO 链接到具有单台计算机的测试 OU,或通过将 GPO 过滤到仅一台计算机)并确保它按照您的需要执行,然后再更改所有计算机上的安全性,结果却发现它并没有按照您的要求执行。
以下是 ACE 中各项条目对于服务的意义的一些背景信息:
要查看 SDDL 表示法的描述符,请使用“sc sdshow service-name”命令。
编辑:
创建新服务的委托权限将有点困难。在全局对象管理器中,可以向服务控制管理器 (SCM) 对象上的用户授予“SC_MANAGER_CREATE_SERVICE”权限。
在 Windows Server 2003 之前的 Windows 版本中,无法在 SCM 上更改权限。从 W2K3 SP1 开始,您可以在 SCM 上更改权限。
更改安全性的 API 是设置服务对象安全,更多信息请访问:http://msdn.microsoft.com/en-us/library/aa379589(VS.85).aspx
有关可授予 SCM 的权限以及在 SCM 上设置的默认 DACL 的更多参考信息请参见此处:http://msdn.microsoft.com/en-us/library/ms685981(VS.85).aspx
简而言之,没有编写代码就无法做到这一点。没有神奇的注册表设置等。但是,如果您可以找人为您编写代码,那么这是完全可行的。
答案2
请查看 Microsoft 的这些知识库文章 -如何配置组策略来设置系统服务的安全性和如何授予用户在 Windows 2000 中管理服务的权限讨论了授予管理服务访问权限的替代方法。
希望这可以帮助。
答案3
正如文章底部所说,微软提供的解决方案仅涵盖 Windows 2000 系统,尽管该解决方案对其所有操作系统都有效。
因此,对于随 Windows 2008 R2 发布的组策略基础架构的集中化理念而言,这是一次巨大的倒退。