Skip to content

April 29, 2012

24

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:

  1. Manually, specifying each parameter:
    Setup.exe /q /ACTION=PrepareImage /FEATURES=SQL,RS /InstanceID= /IACCEPTSQLSERVERLICENSETERMS ...
    
  2. Easily, specifying a configuration file that contains all of your configuration parameters:
    Setup.exe /ConfigurationFile="ConfigurationFile.ini"
    

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:

  1. Run SQL Server 2012 Setup as you normally would.
  2. Set all of the configuration settings you want, clicking through all of the pages of the setup wizard.
  3. 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.
  4. 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"
24 Comments Post a comment
  1. Jul 24 2012

    Nice work. Thanks and you helped a lot with this post.

  2. Sep 27 2013

    Nice work. Concise and to the point. Well done.

  3. venkat
    Oct 15 2013

    I am trying to do silent installation using configuration file but unable to do, can you please help

  4. salman shaik
    Dec 12 2013

    SQLEXPR_x64_ENU.exe /ACTION=Install /FEATURES=SQL /INSTANCENAME=SALMANDB /INSTANCEID=SALMANDB /QS /HIDECONSOLE /INDICATEPROGRESS=”False” /IAcceptSQLServerLicenseTerms /SQLSVCACCOUNT=”Local Service” /SQLSYSADMINACCOUNTS=”Local Service” /BROWSERSVCSTARTUPTYPE=”Automatic” /TCPENABLED /AGTSVCSTARTUPTYPE=”Automatic” /AGTSVCACCOUNT=”Localservices” /SKIPRULES=”RebootRequiredCheck”

    I can able install with this script but i can’t do mixed mode and password tell me what shall i add in that

  5. Apr 23 2014

    Hi need help on the this script, I need to install mixed mode and password ? how to do

  6. Apr 23 2014

    You can use the SECURITYMODE parameter. Add a parameter and value pair of “SECURITYMODE=SQL” and specify the password for the sa account with the SAPWD parameter.

  7. Apr 24 2014

    Need help !
    I am running this in windows powershell, even thought I gave
    the /IACCEPTSQLSERVERLICENSETERMS= “True”
    as a parameter, License Terms page pops up – and it stops. appreciate if you could help on this for the reason.

    C:Microsoft_SQL_EXPRESS_Complete_x64_2012\SQLEXPRADV_x64_ENU.exe /ACTION= ‘Install’ /FEATURES= ‘SQL’ /INSTANCENAME= ‘SQLEXPRESS’ /INSTANCEID= ‘SQLEXPRESS’ /QUIET= “True” /QUIETSIMPLE= “False” /UPDATEENABLED= “True” /FEATURES= “SQLENGINE,SSMS,ADV_SSMS” /INDICATEPROGRESS= ”False” /IACCEPTSQLSERVERLICENSETERMS= “True” /SQLSVCACCOUNT= “NT Service\MSSQLSQLEXPRESS” /SECURITYMODE= “SQL” /SAPWD= “Password@_user” /SQLSYSADMINACCOUNTS= “GOKS\gwest” /BROWSERSVCSTARTUPTYPE= ”Automatic” /TCPENABLED= ‘1’ /AGTSVCSTARTUPTYPE= ”Automatic” /AGTSVCACCOUNT= “NT AUTHORITY\NETWORK SERVICE” /SKIPRULES= ”RebootRequiredCheck”

  8. Apr 26 2014

    If you’re not using a configuration file and specifying parameters at the prompt, there is no =”True” with the “IACCEPTSQLSERVERLICENSETERMS” parameter. See the samples in Microsoft’s documentation.

  9. Brendt
    Jun 23 2014

    thank you for this info, however i am still struggling with it, SQL Server 2012 express produces a second license agreement that does not auto agree and continue…what am i missing, i have tried adding “IACCEPTSQLSERVERLICENSETERMS=”True” to the configurationFile and manually specifying it in the commandline switch.

    any help would be much appreciated.

  10. Dave
    Jun 26 2014

    If you use the SQL installer to build the INI file you will also need to “Remark out” the UIMode setting by placing a semi-colon in front of it in addition to setting either “QUIET” OR “QUIETSIMPLE” to True depending on whether you want a totally silent install (QUIET) or progress bar (aka a “passive” install) “QUIETSIMPLE”

    ; 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=”False”

    ; Setup will display progress only, without any user interaction.
    QUIETSIMPLE=”True”

  11. john
    Oct 9 2014

    Thanks Dave for the ;uimode comment.
    Could not get it to kick off for anything.

  12. Greg
    Oct 14 2014

    Is there a switch to allow you to set a specific TCP port so I don’t need to go in to SQL Server Configuration Manager after the install and change it?

  13. Oct 16 2014

    @Greg: As far as I’m aware, there’s no switch available that will allow you to set a specific TCP port. If you’re attempting to do things completely unattended, I think you’ll probably have to look into creating and running a script that will modify the registry.

  14. Rory
    Dec 3 2014

    How do I include Cummulative updates?

  15. dmc
    Mar 2 2015

    If I wanted to automate my sql instance installs, can I run the script multiple times against the same server, just changing the instance name?

    If the answer is yes, when a second install is running, will the first instance installed become unavailable until the second install is complete?

  16. Mar 2 2015

    Yes, you can run the script multiple times, changing the instance name as you like. I do this myself quite often — in my case it makes pushing out four instances go much smoother.

    When you install additional instances, they do not affect other pre-existing instances. That’s one of the great benefits of running multiple instances. You can later upgrade your “dev” instance to a new version of SQL without affecting your “production” instance.

  17. Markus182
    Mar 30 2015

    created this config file…

    but i don’t get any interface or status:

    ;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=”false”

    ; Setup will display progress only, without any user interaction.

    QUIETSIMPLE=”True”

    ; 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”
    ERRORREPORTING=”False”

    ; Geben Sie das Installationsverzeichnis an.

    INSTANCEDIR=”C:\Program Files\Microsoft SQL Server”

    ; Agent-Kontoname

    AGTSVCACCOUNT=”NT-AUTORITÄT\NETZWERKDIENST”

    ; Dienst nach der Installation automatisch starten.

    AGTSVCSTARTUPTYPE=”Disabled”

    ; TCP-Kommunikationsport des CM-Bricks

    COMMFABRICPORT=”0″

    ; Gibt an, wie private Netzwerke von der Matrix verwendet werden

    COMMFABRICNETWORKLEVEL=”0″

    ; Gibt an, wie die Kommunikation zwischen Bricks geschützt wird

    COMMFABRICENCRYPTION=”0″

    ; Vom CM-Brick verwendeter TCP-Port

    MATRIXCMBRICKCOMMPORT=”0″

    ; Starttyp für den SQL Server-Dienst.

    SQLSVCSTARTUPTYPE=”Automatic”

    ; Ebene zur Aktivierung der FILESTREAM-Funktion (0, 1, 2 oder 3).

    FILESTREAMLEVEL=”3″

    ; Der Name der Windows-Freigabe, die für die FILESTREAM-Datei-E/A erstellt wird.

    FILESTREAMSHARENAME=”VARIOSQLEXPRESS”

    ; Legen Sie es auf ‘1’ fest, um ‘RANU’ für SQL Server Express zu aktivieren.

    ENABLERANU=”True”

    ; Gibt eine Windows-Sortierung oder eine SQL-Sortierung für das Datenbankmodul an.

    SQLCOLLATION=”Latin1_General_CI_AS”

    ; Konto für SQL Server-Dienst: Domäne\Benutzer- oder Systemkonto.

    SQLSVCACCOUNT=”NT Service\MSSQL$VARIOSQLEXPRESS”

    ; Windows-Konto/-Konten, die als SQL Server-Systemadministratoren bereitgestellt werden sollen.

    SQLSYSADMINACCOUNTS=”SST-PC\SST”

    ; Die Windows-Authentifizierung ist die Standardeinstellung. Verwenden Sie ‘SQL’ zur Authentifizierung im gemischten Modus.

    SECURITYMODE=”SQL”

    ; Stellen Sie den aktuellen Benutzer als Datenbankmodul-Systemadministrator für SQL Server 2012 Express bereit.

    ADDCURRENTUSERASSQLADMIN=”True”

    ; Geben Sie zum Deaktivieren des TCP/IP-Protokolls 0 oder zum Aktivieren 1 an.

    TCPENABLED=”0″

    ; Geben Sie zum Deaktivieren des Named Pipes-Protokolls 0 oder zum Aktivieren 1 an.

    NPENABLED=”0″

    ; Starttyp für den Browserdienst.

    BROWSERSVCSTARTUPTYPE=”Automatic”

  18. Ken
    Apr 28 2015

    Thanks for useful information. It’s very easy to read for a beginner.

  19. Ashkan
    Dec 10 2015

    I want to install Microsoft SQL Server on several computers in several place and diffrent network.
    The best solution that i found that give me optimum output is installation through CONFIGURATION FILE (ini).
    I try to generate a configuration file and i have configuration file (INI).
    The problem is in two parameters in configuration file:

    1- CTLRUSERS
    2- SQLSYSADMINACCOUNTS

    in these parameters I enter this parameters: “Current user” | “Administrators” | “Administrator”
    the configuration file save my “current user” depend on specification of user in computer that i generate INI file on it.
    How i can change the value to variable parameter to accept current user in Configuration File?
    Please help me as soon as possible.
    Thank you so much.
    With regards.
    Ashkan

  20. awais Arshad
    Apr 26 2016

    I am installing sql server 2012 using command prompt. it starts well but when it comes in installation phase it fails to install under Validating feature. my command is follows:

    D:SQLEXPR_x86_ENU.exe /ACTION=Install /QS /FEATURES=SQL /INSTANCENAME=”MSSQLSERVER”/SQLSVCACCOUNT=”Workgroup\TOSHIBA-PC”/SQLSVCPASSWORD=”@bcd1234″ /SQLSYSADMINACCOUNTS=”Workgroup\TOSHIBA-PC”/AGTSVCACCOUNT=”NT AUTHORITY\Network Service” /IACCEPTSQLSERVERLICENSETERMS

    Please some one help me, Thanks,

  21. DBA Doug
    Jun 9 2016

    Most excellent post. Just what was looking for in simply laying out the options.

  22. tivs
    Aug 23 2016

    Nice work matt. Could you help me for powershell script(for example sqlscript.psl) Like when i call sqlscript.psl it will call

    1:- the setup.exe from D/E drive where sql iso is mounted.

    2:- check the ConfigurationFile.ini file from a folder and start installation

    3:- Once sql installation is done, a database creation “db.sql” file has to execute

    Thank you in-advance for your time and help.

  23. steve
    Oct 28 2016

    Has anyone else gotten stuck that the SQL Server Installation Center landing page keeps coming up?

  24. May 28 2017

    How To Make Money Online Having A Home Business

Share your thoughts, post a comment.

(required)
(required)

Note: HTML is allowed. Your email address will never be published.

Subscribe to comments