如何设置Windows服务的DACL,以便普通用户可以启动/停止服务

时间:2017-04-18 08:54:59

标签: installshield dacl

我有一个Windows服务应用程序,我使用安装屏蔽构建其安装程序。如何在安装时设置服务的DACL? 我知道我可以做一个" sc sdset"安装后。但我想将提升的权限设置为安装过程的一部分。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

我认为您已正确创建了您的服务安装。以下资源可能有助于确认:Using InstallShield to Create an Installation that Installs Windows Services以及InstallShield帮助库:Installing, Controlling, and Configuring Windows Services

我不确定是否可以使用IDE设置DACL设置,您可能能够快速浏览此选项,但我认为它不存在,您想要手动执行此操作。在这种情况下,我能看到的最简单的解决方案是创建自定义操作(CA)并将“脚本内执行”设置为“Deferred Execution in System Context”。通过执行此操作,您可以设置此CA的提升执行。在Execution Sequence中安排此CA(不在UI序列中),可能就在“InstallServices”之后。现在您可以选择CA应该做什么。例如,您可以使用命令行"sc"来设置所需的权限。您也可以编写VBScript CA来执行相同的操作。您可以写installation helper dll并为您做注册。一切掌握在你手中。有关这些选项的更多信息over there

答案 1 :(得分:0)

安装完成后,将此命令作为安装后过程的一部分运行: SUBINACL / SERVICE / GRANT = S-1-5-32-545 = TO

这为Windows服务提供了管理员权限。