【问题标题】:How to set DACL of a Windows service so that a normal user can start / stop the service如何设置 Windows 服务的 DACL 以便普通用户可以启动/停止服务
【发布时间】:2017-04-18 08:54:58
【问题描述】:

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

【问题讨论】:

    标签: installshield dacl


    【解决方案1】:

    我假设您已正确创建安装您的服务。以下资源可能有助于确认: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

    【讨论】:

    • 非常感谢您的回答。还在调查。如果得到解决,将发布答案。
    【解决方案2】:

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

    这将赋予 Windows 服务管理员权限。

    【讨论】:

      猜你喜欢
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      • 2023-01-31
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多