Sql server 2012 从Inno安装程序静默安装SQL Server Express 2012
我正在尝试从使用Inno Setup创建的应用程序安装程序以静默方式安装SQL Server Express 2012。从命令行运行以下命令时,将安装SQL Server Express 2012,因为我只希望显示安装进度,但不允许用户输入任何输入 有效的命令行命令:Sql server 2012 从Inno安装程序静默安装SQL Server Express 2012,sql-server-2012,installation,inno-setup,sql-server-2012-express,Sql Server 2012,Installation,Inno Setup,Sql Server 2012 Express,我正在尝试从使用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 /
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安装脚本执行此操作,我有以下代码:
ExecinstallName,
“/ACTION=Install/INSTANCENAME=MYINSTANCE/INSTANCEID=MYINSTANCE/QS/HIDECONSOLE/INDICATEPROGRESS=False/IAcceptSQLServerLicenseTerms/SQLSVCACCOUNT=NT AUTHORITY\NETWORK SERVICE/SQLSYSADMINACCOUNTS=builtin\administrators/SKIPRULES=RebootRequiredCheck”,
,
SW_秀,
ewwaitunterminated,
结果编码;
其中installName=SQLEXPR\u x86\u ENU.exe
从安装程序运行时,SQL Server Express 2012安装程序将启动,但在第一个信息对话框之后,它将显示SQL Server Installation Center窗口,用户必须在安装程序继续之前选择安装类型。他们还必须同意许可协议,这在直接从命令行运行时不是必需的
关于如何从Inno安装程序以静默方式运行安装程序,您有什么想法吗?将内置\Administrators更改为内置\Users会很好。问题可能是将命令行参数传递给SQLEXPR\U x86\U ENU.exe 如果使用命令linie运行解压缩的SQL setup.exe,则所有操作都应正常。但是,如果您通过SQLEXPR_x86_ENU.exe传递命令行,它首先提取安装程序,然后使用修改后的命令行运行它-一对引号被删除,或者更确切地说,它只传递第一个字符串作为参数。这就是为什么setup.exe的整个命令行参数应该放在附加引号中的原因 您的命令行应该以“and”开头,以“and”结尾:
如果使用相同的参数,那么在命令行运行和从Inno运行之间应该没有任何区别。但是,有一件事可能会让您在使用SQL Server时遇到麻烦,那就是安装它的位置,{tmp}文件夹有时是一个足够长的路径名,因此安装将失败,因为添加到该文件夹上的SQL Server自己的子文件夹将打破最大路径长度限制。看看如果你在Inno内部和外部的同一个位置运行安装程序会怎么样。我试着在同一个位置运行,但结果相同。安装程序运行正常,但从Inno安装程序运行时仍需要用户输入。我正在使用以下命令行,它对我来说运行正常:/QS/IACCEPTSQLSERVERLICENSETERMS/HIDECONSOLE/ENU/InstanceName=MyInstance/UpdateEnabled=False/Action=Install/Features=SQL/sqlsysadmincounts=BUILTIN\Administrators/sqlsvccount=NTAUTHORITY\NETWORK SERVICE/SQLSVCSTARTUPTYPE=Automatic/browserssvcstartuptype=Automatic从命令行我能够以静默方式启动SQL Server Express安装程序,但当从Inno安装程序执行相同的命令时,它仍会提示用户。我添加了原始示例中缺少的“/FEATURES=SQLENGINE”,但它仍然需要用户输入。许可证接受必须使用大写字母,即/iacceptsqlserverLicenseTerm我将此标记为答案,因为它确实实现了安装程序在静默模式下运行的结果。但是,如果我理解正确,这意味着所有用户无论是否是管理员,都将拥有SQL Server Express数据库实例的系统管理员权限。这是正确的吗?
'"/ACTION=Install /INSTANCENAME=MYINSTANCE /INSTANCEID=MYINSTANCE /QS /HIDECONSOLE /INDICATEPROGRESS="False" /IAcceptSQLServerLicenseTerms /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSYSADMINACCOUNTS="builtin\administrators" /SKIPRULES="RebootRequiredCheck""'