I believe you must specify the full path to the file, e.g. C:\Temp\Configuration.ini
- otherwise SQL Server setup tries to find it in the extraction folder for the setup, which is typically C:\some_big_long_gui\
.
You also have some configuration options (such as IAcceptSQLServerLicenseTerms
) which are not valid for the edition you're using (that one specifically was added in SQL Server 2008 R2). I was able to install SQL Server 2008 Express successfully using the following configuration file (I removed unnecessary SSAS / SSRS / SSIS options for Express, all the verbose comments, and the invalid entries):
[SQLServer2008]
INSTANCEID="SQLEXPRESS"
ACTION="Install"
FEATURES=SQLENGINE
HELP="False"
INDICATEPROGRESS="False"
X86="False"
ERRORREPORTING="False"
SQMREPORTING="False"
INSTANCENAME="SQLEXPRESS"
SQLSVCSTARTUPTYPE="Automatic"
ENABLERANU="True"
SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS"
SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE"
SQLSYSADMINACCOUNTS="BUILTIN\ADMINISTRATORS"
SECURITYMODE="SQL"
ADDCURRENTUSERASSQLADMIN="True"
SAPWD="mds134"
TCPENABLED="0"
NPENABLED="0"
BROWSERSVCSTARTUPTYPE="Disabled"
And the following command line:
SQLEXPR_x86_ENU.exe /QS /ConfigurationFile="C:\Temp\Configuration.ini"
You will have to instruct your users to specify the path for this. You can make this an argument to your bootstrapper, but I don't know of a way to have setup find your configuration file without specifying an explicit path for it. If you tell your users to copy both the exe and the ini file to the same folder, I'm sure your wrapper could figure out the command line necessary. Otherwise your users will have to lend a hand in determining the path.
Another option would be to just use a massive command line instead of using a configuration file at all. This seems to be two less steps in the setup process anyway (ensuring that the ini file has been copied and determining where it is). Unless the purpose is to allow users to change some arguments using the config file. I think those should perhaps be in a config file you deploy with the wrapper instead of the config file for Express.
If you're building a new application to deploy SQL Server, why aren't you using SQL Server 2012? I'm not sure it overcomes the configuration file issue (this page seems to imply it isn't required, but I was not successful with 2008 or with 2012), but at least you'll be using a much more recent version, with more features and a longer support sunset, more predictable command-line arguments (I did not expect them to change between 2008 and 2008 R2), and less chance that a database will be too modern for the version of the engine installed.
Best Answer
Unfortunately, you cannot install SQL Express without Administrator rights on the machine and it's not something you can set in the config file or on the command line. If being able to install without Administrator rights is a requirement, you may want to investigate using SQL Server Compact Edition.
See the following MSDN topics for more information: