4

我正在尝试从使用 Inno Setup 创建的应用程序安装程序静默安装 SQL Server Express 2012。从命令行运行以下命令时,会安装 SQL Server Express 2012,因为我只想显示安装进度但不允许用户输入任何输入。

有效的命令行命令:

C:\Users\Jason\Desktop>SQLEXPR_x86_ENU.exe /ACTION=Install /INSTANCENAME=MYINSTANCE /INSTANCEID=MYINSTANCE /QS /HIDECONSOLE /INDICATEPROGRESS="False" /IAcceptSQLServerLicenseTerms /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSYSADMINACCOUNTS="builtin\administrators" /SKIPRULES="RebootRequiredCheck"

为了从我的 Inno Setup 脚本中执行此操作,我有以下代码:

Exec(installName,
  '/ACTION=Install /INSTANCENAME=MYINSTANCE /INSTANCEID=MYINSTANCE /QS /HIDECONSOLE /INDICATEPROGRESS="False" /IAcceptSQLServerLicenseTerms /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSYSADMINACCOUNTS="builtin\administrators" /SKIPRULES="RebootRequiredCheck"',
  '',
  SW_SHOW,
  ewWaitUntilTerminated,
  ResultCode);

在哪里installName = SQLEXPR_x86_ENU.exe

从安装程序运行时,SQL Server Express 2012 安装程序启动,但在第一个信息对话框之后,它会显示 SQL Server 安装中心窗口,用户必须在安装程序继续之前选择安装类型。他们还必须同意直接从命令行运行时不需要的许可协议。

关于如何从 Inno Setup 静默运行安装程序的任何想法?

4

2 回答 2

1

从“BUILTIN\Administrators”更改为“BUILTIN\Users”就可以了。

于 2013-11-13T00:09:50.530 回答
0

问题可能在于将命令行参数传递给SQLEXPR_x86_ENU.exe 如果您使用命令行运行提取的 SQL setup.exe,一切都应该没问题。但是,如果您通过命令行传递SQLEXPR_x86_ENU.exe它首先提取安装程序,然后使用修改后的命令行运行它 - 删除一对引号""(或者更确切地说,它只传递第一个字符串作为参数)。这就是为什么整个命令行参数 forsetup.exe应该放在额外的引号中你的命令行应该看起来像这样(以and"" 开头并以and结尾):'""'

'"/ACTION=Install /INSTANCENAME=MYINSTANCE /INSTANCEID=MYINSTANCE /QS /HIDECONSOLE /INDICATEPROGRESS="False" /IAcceptSQLServerLicenseTerms /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSYSADMINACCOUNTS="builtin\administrators" /SKIPRULES="RebootRequiredCheck""'
于 2016-08-23T12:51:29.047 回答