Silent Install of SQL Server Express 2012 from Inn

2020-02-29 09:41发布

I am trying to install SQL Server Express 2012 silently from my application installer created using Inno Setup. When running the following command from the command line, SQL Server Express 2012 is installed as I want only showing progress of the install but not allowing the user to enter any input.

Command line command that works:

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"

In order to do this from my Inno Setup script I have the following code:

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);

where installName = SQLEXPR_x86_ENU.exe

When run from the Installer the SQL Server Express 2012 installer starts but after the first information dialog it then shows the SQL Server Installation Center window and the user has to select the type of installation before the installer continues. They also have to agree to the license agreement which was not required when running directly from the command line.

Any ideas on how to run the installer silently from Inno Setup?

2条回答
劳资没心,怎么记你
2楼-- · 2020-02-29 10:14

The problem is probably with passing command line params to SQLEXPR_x86_ENU.exe If you run extracted SQL setup.exe with your command linie all should be OK. But if you pass a command line through SQLEXPR_x86_ENU.exe it first extracts installer and then runs it with modified command line - one pair of quotation marks "" is removed (or rather it passes only first string as params). That's why whole command line params for setup.exe should be placed in additional quotation marks "" Your command line should looks like this one (starts with ' and " and finishes with " and'):

'"/ACTION=Install /INSTANCENAME=MYINSTANCE /INSTANCEID=MYINSTANCE /QS /HIDECONSOLE /INDICATEPROGRESS="False" /IAcceptSQLServerLicenseTerms /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSYSADMINACCOUNTS="builtin\administrators" /SKIPRULES="RebootRequiredCheck""'
查看更多
疯言疯语
3楼-- · 2020-02-29 10:30

change from "BUILTIN\Administrators" to "BUILTIN\Users" will be fine.

查看更多
登录 后发表回答