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?
change from "BUILTIN\Administrators" to "BUILTIN\Users" will be fine.
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""'
来源:https://stackoverflow.com/questions/19449975/silent-install-of-sql-server-express-2012-from-inno-setup