如何在没有管理员权限的情况下启动和停止窗口服务?
我的应用程序启动应该以关闭后必须停止的方式启动我的服务。我可以使用“服务控制器”
来做到这一点我可以使用管理员权限安装服务,但是启动和停止服务不应该要求管理员权限。
有人能告诉我如何使用c#实现这个目标吗?
答案 0 :(得分:3)
我发现了为非管理员用户授予启动/停止服务权限的方法。我们可以为我们的服务提供组策略,因此可以在没有管理员权限的情况下启动/停止。 我找到了两种方法来完成这项任务。
方法1:
这种方法运行得很好,我在一个虚拟机中创建了两个非管理员用户帐户,并设置了管理员帐户的权限,我可以从两个非管理员用户帐户启动和停止服务。然而,这种方法并不是问题的完整解决方案,它涉及许多手动步骤。所以我开始寻找自动化这个过程。结果我找到了方法2
方法2: 使用“Subinacl.exe”授予权限,SubInACL是一个命令行工具,使管理员能够获取有关文件,注册表项和服务的安全信息,并将此信息从用户传输到用户,从本地或全局组传输到组,从域到域。
我按照创建两个非管理员用户帐户的相同示例执行命令SUBINACL / SERVICE \ DomainName \ MyService / GRANT = DomainName \ USERS = TOP,这样就可以授予用户启动/停止服务的权限。