【问题标题】:Setting Service Properties in Inno Setup using SC使用 SC 在 Inno Setup 中设置服务属性
【发布时间】:2020-02-03 10:56:03
【问题描述】:

我在使用 SC 和 Inno Setup 创建服务时尝试设置多个属性到目前为止,我无法让它 100% 工作,我已经让服务名称、显示名称、依赖项和描述正常工作。这只是我需要预设的恢复设置。 (见图)

我尝试了多种编写方式,我尝试了失败和描述部分在同一行,单引号、双引号和斜引号都不起作用我在新行上尝试了如下这也不起作用。不确定它们是否必须按特定顺序排列?

我环顾四周,没有发现任何关于设置恢复设置的示例: Inno Setup: Installing Windows services using "sc create" 当然我也看过这里:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc742069(v%3Dws.11) 但我不知道如何将其翻译成 inno 脚本。

我知道这不是执行此操作的“正确方法”,最好使用 pascal 代码或使用这些服务脚本http://www.sandon.it/node/9 但我只是想以我自己的好奇心/教育来理解这种方式,而且我还没有找到任何好的 Pascal 代码示例。

我确实让服务脚本与一些帕斯卡代码一起使用,方法是将其包含在代码部分中,然后使用注册表设置设置它不支持的属性,但是我特别想知道如何为我的 SC.exe 做同样的事情自己的教育。

[Run]
Filename: {sys}\sc.exe; Parameters: "create SERVICENAME start= auto DisplayName= ""SERVICEDISPLAYNAME"" binPath=""{app}\SERVICEEXE.exe"" depend= mpssvc"; Flags: runhidden
Filename: {sys}\sc.exe; Parameters: "failure ""SERVICENAME"" reset= 100 actions= restart/1000/restart/1000"; Flags: runhidden
Filename: {sys}\sc.exe; Parameters: "description SERVICENAME ""SERVICE DESCRIPTION"""; Flags: runhidden


[UninstallRun]
Filename: {sys}\sc.exe; Parameters: "stop SERVICENAME" ; Flags: runhidden
Filename: {sys}\sc.exe; Parameters: "delete SRVICENAME" ; Flags: runhidden

【问题讨论】:

    标签: inno-setup


    【解决方案1】:

    这个问题有点老了,但我想出了从脚本中设置 SC FAILURE 的解决方案,这可能对其他人有用。

    报告的问题(未设置恢复操作)是由命令末尾设置的标志 (runhidden) 引起的。如果设置waituntilidlewaituntilterminated,它将正常工作。 但最简单的解决方案是删除标志,因为waituntilterminated 是默认标志。

    Filename: "{sys}\sc.exe"; Parameters: "failure ""MyService"" reset= 86400 actions= restart/60000/restart/60000/restart/60000"
    

    另一个有趣的事情是reset 期望以分钟为单位接收时间,但 GUI 显示天,因此如果值小于 84600,则始终显示 0 天。

    GUI 中的“restart service after”以分钟为单位,但在命令中以毫秒为单位,因此如果大于 60000,则仅显示 0 以外的内容。

    最后一点是设置少于3次失败的方式,动作应该是空的但需要定义一些时间。

    actions= restart/15000/restart/30000//1000
    

    这篇文章解释了最后一点:
    How to use "sc" to install a service and specify NO ACTION for "subsequent failures" under recovery

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-11
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 2011-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多