【发布时间】:2017-04-18 08:54:58
【问题描述】:
我有一个 Windows 服务应用程序,我正在使用 install shield 构建它的安装程序。安装时如何设置服务的DACL? 我知道我可以在安装后执行“sc sdset”。但我想将提升的权限设置为安装过程的一部分。有没有办法做到这一点?
【问题讨论】:
标签: installshield dacl
我有一个 Windows 服务应用程序,我正在使用 install shield 构建它的安装程序。安装时如何设置服务的DACL? 我知道我可以在安装后执行“sc sdset”。但我想将提升的权限设置为安装过程的一部分。有没有办法做到这一点?
【问题讨论】:
标签: installshield dacl
我假设您已正确创建安装您的服务。以下资源可能有助于确认: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 的提升执行。将此 CA 安排在 Execution Sequence 的某处(不在 UI 序列中),可能就在“InstallServices”之后。现在您有几个选项该 CA 应该做什么。例如,您可以只使用命令行"sc" 来设置所需的权限。您也可以编写 VBScript CA 来做同样的事情。您可以写installation helper dll 为您注册。都在你的手中。更多关于这些选项over there。
【讨论】:
在安装后运行此命令作为安装后过程的一部分: SUBINACL /SERVICE /GRANT=S-1-5-32-545=TO
这将赋予 Windows 服务管理员权限。
【讨论】: