当前位置: 首页 > 知识库问答 >
问题:

使用SC在Inno安装程序中设置服务属性

凌嘉志
2023-03-14

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

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

我环顾四周,没有发现任何关于设置恢复设置的信息。例如:Inno Setup:使用“sc create”安装Windows服务。当然,我也在这里看过:https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc742069(v=ws.11)但我不知道如何将其翻译成inno脚本。

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

我确实使用服务脚本来处理一些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

共有1个答案

逑禄
2023-03-14

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

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

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

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

GUI中的“在此之后重新启动服务”是以分钟为单位的,但在命令中是以毫秒为单位的,因此只有大于60000时才会显示0以外的值。

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

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

最后一点在这篇文章中有解释:< br >如何使用“sc”来安装一个服务,并在恢复下为“后续故障”指定无操作

 类似资料:
  • 我有两个二进制文件,必须为它们创建一个服务。我尝试了一个解决方案,使用“SC创建”从如何安装Windows服务与Inno安装?

  • 在我的< code>[Files]部分中,我有以下内容: 在部分我有: 最后,在部分,我有: 现在,在这个版本的程序中,我已经将这两个DLL文件的功能合并到另一组DLL文件中: 因此, DLL 文件。现在,我知道如果它们存在,我可以简单地删除它们: 但据我所知,这不会像 中那样触发 DLL 文件的注销。 我该怎么做?在安装过程中删除并注销DLL文件(如果存在)?

  • 安装 libpam-yubico libpam-yubico 提供了将 Yubico 软件集成到 PAM(Linux Pluggable Authentication Modules,Linux 可插拔身份验证模块)所需要的依赖。 可以通过添加 PPA 仓库的方式安装: ❯ apt-get install -y vim software-properties-common ❯ add-apt-re

  • 我使用Inno Setup 6. x的目标是在代码中自定义文本,即Pascal Script。我使用Pascal Script的原因是我只想在为真时自定义/更改标签。我该怎么做? 以下两种方法不起作用: > 使用脚本常量: 这显示的是“{code:GetFinishedLabel}”,而不是“BLA”。 在< code>InitializeWizard中自定义向导。 完整(失败)示例: 仍然显示中

  • 我想首先将现有文件“我的程序旧”重命名为“我的程序v2”,但前提是“我的程序v2”还不存在。 然后我想将“我的程序”重命名为“我的程序旧”,但前提是“我的程序旧”不存在。 然后我想从安装程序安装‘我的程序',但前提是’我的程序‘还不存在。 我将非常感谢任何指导!