2012-06-01 280 views
5

如何启动和停止没有管理员权限的窗口服务?Windows服务启动和停止没有管理员权限

我的应用程序启动应该启动我的服务,它一旦关闭就停止。我可以使用“服务控制器”执行此操作

我可以安装具有管理权限的服务,但对于启动和停止服务应该不要求管理员权限。

任何人都可以告诉我如何使用c#实现这一点吗?

+4

可能的重复http://stackoverflow.com/questions/4436558/start-stop-a-windows-service-from-a-non-administrator-user-account – Adam

+0

你试图启动和停止什么样的服务。您正在使用的操作系统 –

+0

Noraml WCF服务 –

回答

3

我发现了授予非管理员用户开始/停止服务权限的方式。我们可以为我们的服务提供组策略,以便在没有管理员权限的情况下启动/停止。 我发现了两种方法来完成这项任务。

方法1:

  1. 从“程序mmc.exe”
  2. 创建创建一个安全数据库来存储策略信息
  3. 更改服务权限空白安全模板
  4. 创建控制台我们想要授权的用户
  5. 应用新的安全权限(我提到这个blog

这种方法非常好,我在一个虚拟机中创建了两个非admin用户帐户,并设置了来自admin帐户的权限,我可以从两个非管理用户帐户启动和停止该服务。但是,这种方法并不是解决问题的完整方案,它涉及很多手动步骤。所以我开始寻找这个过程的自动化。结果我找到了方法2

方法2: 使用“Subinacl.exe”授予权限,SubInACL是一个命令行工具,使管理员可以获取有关文件,注册表项和服务的安全信息,以及将这些信息从用户转移到用户,从本地或全局组到组以及从域到域。

我遵循同样的例子创建两个非管理员用户帐户,并执行命令SUBINACL/SERVICE \ DomainName \ MyService/GRANT = DomainName \ USERS = TOP,这样就会授予用户启动/停止服务。

+0

请记住,有一个原因此权限默认情况下不授予常规用户。您可能会在您的网络中打开安全漏洞。 – JDB

相关问题