我正在尝试从使用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安装脚本执行此操作,我有以下代码:
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静默运行安装程序的任何想法吗?
答案 0 :(得分:1)
从“BUILTIN \ Administrators”更改为“BUILTIN \ Users”即可。
答案 1 :(得分:0)
问题可能在于将命令行参数传递给SQLEXPR_x86_ENU.exe
如果使用命令linie运行解压缩的SQL setup.exe,则一切正常。但是,如果您通过SQLEXPR_x86_ENU.exe
传递命令行,它首先提取安装程序,然后使用修改的命令行运行它 - 删除一对引号""
(或者它只将第一个字符串作为参数传递)。这就是setup.exe
的整个命令行参数应放在其他引号""
中的原因
您的命令行应如下所示(以'
和"
开头,并以"
和'
结束):
'"/ACTION=Install /INSTANCENAME=MYINSTANCE /INSTANCEID=MYINSTANCE /QS /HIDECONSOLE /INDICATEPROGRESS="False" /IAcceptSQLServerLicenseTerms /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSYSADMINACCOUNTS="builtin\administrators" /SKIPRULES="RebootRequiredCheck""'