SQL Server 2012 Unattended Installation
Automating installations is a good thing. It means that the installations are consistent across multiple installations, there’s (by necessity) documentation for later reference of what and how something was installed, and automatic, unattended installations scale really well. If you’re doing it more than once, you should be automating it.
There are two ways to specify installation parameters for an unattended install of SQL Server 2012:
- Manually, specifying each parameter:
Setup.exe /q /ACTION=PrepareImage /FEATURES=SQL,RS /InstanceID= /IACCEPTSQLSERVERLICENSETERMS ...
- Easily, specifying a configuration file that contains all of your configuration parameters:
I much prefer the second method of provided a configuration file as I don’t have to remember all of the required parameters and I know my parameters are correct. Most of the time all I have to do is take a previously used configuration file, tweak a few lines, and I’m good to go.
Creating a Configuration File
You have a few different options for creating a confirmation file: You can create it from a previously existing one you may have or an example one provided by someone else, make your own from scratch (you may want to reference the Microsoft documentation, or opt to have SQL Server 2012 Setup create it for you. There isn’t much too it, as it’s just a plain-text INI file.
Every time you manually install SQL Server using the SQL Server 2012 Setup GUI, Setup itself actually creates a configuration file for itself that it uses to install SQL Server. To have SQL Server 2012 Setup create a configruation file for you:
- Run SQL Server 2012 Setup as you normally would.
- Set all of the configuration settings you want, clicking through all of the pages of the setup wizard.
- When you reach the “Ready to Install” page, Setup will allow you to review all of your configuration settings. In addition, at the bottom of the screen it will show you the path of the configuration file that it has created itself. Make note of the configuration file path so you can grab the configuration file.
- Cancel Setup.
Changing the Configuration File for Unattended Use
There are some important parameters that you should be aware of though in order to have a successful, unattended installation:
- IACCEPTSQLSERVERLICENSETERMS: Just as one might guess, this parameter acknowledge acceptance of the license terms. Required for unattended installation.
- QUIET and QUIETSIMPLE: Setting QUIET to true will cause Setup to not display any user interface. Setting QUIETSIMPLE to true will cause Setup to display installation progress only, without any user interaction. One of these options is required to be set to true for an unattended installation.
Example SQL Server 2012 Configuration File
;SQL Server 2012 Configuration File [OPTIONS] ; Required to acknowledge acceptance of the license terms. IACCEPTSQLSERVERLICENSETERMS="True" ; Specifies a Setup work flow, like INSTALL, UNINSTALL, or UPGRADE. This is a required parameter. ACTION="Install" ; Use this parameter to install the English version of SQL Server on a localized operating system when the installation media includes language packs for both English and the language corresponding to the operating system. ENU="True" ; Parameter that controls the user interface behavior. Valid values are Normal for the full UI,AutoAdvance for a simplied UI, and EnableUIOnServerCore for bypassing Server Core setup GUI block. ;UIMODE="Normal" ; Setup will not display any user interface. QUIET="True" ; Setup will display progress only, without any user interaction. QUIETSIMPLE="False" ; Specify whether SQL Server Setup should discover and include product updates. The valid values are True and False or 1 and 0. By default SQL Server Setup will include updates that are found. UPDATEENABLED="True" ; Specifies features to install, uninstall, or upgrade. The list of top-level features include SQL, AS, RS, IS, MDS, and Tools. The SQL feature will install the Database Engine, Replication, Full-Text, and Data Quality Services (DQS) server. The Tools feature will install Management Tools, Books online components, SQL Server Data Tools, and other shared components. FEATURES=SQLENGINE,SSMS,ADV_SSMS ; Specify the location where SQL Server Setup will obtain product updates. The valid values are "MU" to search Microsoft Update, a valid folder path, a relative path such as .\MyUpdates or a UNC share. By default SQL Server Setup will search Microsoft Update or a Windows Update service through the Window Server Update Services. UPDATESOURCE="MU" ; Displays the command line parameters usage HELP="False" ; Specifies that the detailed Setup log should be piped to the console. INDICATEPROGRESS="False" ; Specifies that Setup should install into WOW64. This command line argument is not supported on an IA64 or a 32-bit system. X86="False" ; Specify the root installation directory for shared components. This directory remains unchanged after shared components are already installed. INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server" ; Specify the root installation directory for the WOW64 shared components. This directory remains unchanged after WOW64 shared components are already installed. INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server" ; Specify a default or named instance. MSSQLSERVER is the default instance for non-Express editions and SQLExpress for Express editions. This parameter is required when installing the SQL Server Database Engine (SQL), Analysis Services (AS), or Reporting Services (RS). INSTANCENAME="INSTANCE1" ; Specify the Instance ID for the SQL Server features you have specified. SQL Server directory structure, registry structure, and service names will incorporate the instance ID of the SQL Server instance. INSTANCEID="INSTANCE1" ; Specify that SQL Server feature usage data can be collected and sent to Microsoft. Specify 1 or True to enable and 0 or False to disable this feature. SQMREPORTING="False" ; Specify if errors can be reported to Microsoft to improve future SQL Server releases. Specify 1 or True to enable and 0 or False to disable this feature. ERRORREPORTING="False" ; Specify the installation directory. INSTANCEDIR="C:\Program Files\Microsoft SQL Server" ; Specifies the account for the SQL Server Agent service. AGTSVCACCOUNT="Administrator" AGTSVCPASSWORD="Pa$$w0rd" ; Auto-start service after installation. AGTSVCSTARTUPTYPE="Automatic" ; CM brick TCP communication port COMMFABRICPORT="0" ; How matrix will use private networks COMMFABRICNETWORKLEVEL="0" ; How inter brick communication will be protected COMMFABRICENCRYPTION="0" ; TCP port used by the CM brick MATRIXCMBRICKCOMMPORT="0" ; Startup type for the SQL Server service. SQLSVCSTARTUPTYPE="Automatic" ; Level to enable FILESTREAM feature at (0, 1, 2 or 3). FILESTREAMLEVEL="0" ; Set to "1" to enable RANU for SQL Server Express. ENABLERANU="False" ; Specifies a Windows collation or an SQL collation to use for the Database Engine. SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS" ; Account for SQL Server service: Domain\User or system account. SQLSVCACCOUNT="Administrator" SQLSVCPASSWORD="Pa$$w0rd" ; Windows account(s) to provision as SQL Server system administrators. SQLSYSADMINACCOUNTS="Administrator" ; Provision current user as a Database Engine system administrator for SQL Server 2012 Express. ADDCURRENTUSERASSQLADMIN="False" ; Specify 0 to disable or 1 to enable the TCP/IP protocol. TCPENABLED="1" ; Specify 0 to disable or 1 to enable the Named Pipes protocol. NPENABLED="0" ; Startup type for Browser Service. BROWSERSVCSTARTUPTYPE="Automatic"