Building SQL Server Unattended Setup Script

Hello. I’m researching options to automate SQL Server setup. For now I’ll gather stuff I’ve found here. I’ll be glad if you participate.

Running setup with an ini file:

setup.exe /CONFIGURATIONFILE=config.ini

More info about config files: https://msdn.microsoft.com/en-us/library/dd239405.aspx

All options: https://msdn.microsoft.com/en-us/library/ms144259.aspx

###Sample Configuration 1

;SQL SERVER 2008 R2 Configuration File
;Version 1.0, 5 May 2010
;
[SQLSERVER2008]
; Specify the Instance ID for the SQL Server features you have specified. SQL Server directory structure, registry structure, and service names will reflect the instance ID of the SQL Server instance.
INSTANCEID="MSSQLSERVER“
; Specifies a Setup work flow, like INSTALL, UNINSTALL, or UPGRADE. This is a required parameter.
ACTION="Install"
; Specifies features to install, uninstall, or upgrade. The list of top-level features include SQL, AS, RS, IS, and Tools. The SQL feature will install the database engine, replication, and full-text. The Tools feature will install Management Tools, Books online, Business Intelligence Development Studio, and other shared components.
FEATURES=SQLENGINE,CONN,SSMS,ADV_SSMS
; Displays the command line parameters usage
HELP="False"
; Specifies that the detailed Setup log should be piped to the console.
INDICATEPROGRESS="False"
; Setup will not display any user interface.
QUIET="False"
; Setup will display progress only without any user interaction.
QUIETSIMPLE="True"
; Specifies that Setup should install into WOW64. This command line argument is not supported on an IA64 or a 32-bit system.
X86="False"
; Specifies the path to the installation media folder where setup.exe is located.
MEDIASOURCE="z:"
; Detailed help for command line argument ENU has not been defined yet.
ENU="True"
; Parameter that controls the user interface behavior. Valid values are Normal for the full UI, and AutoAdvance for a simplied UI.
; UIMODE="Normal"
; 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 root installation directory for native shared components.
INSTALLSHAREDDIR="D:Program FilesMicrosoft SQL Server"
; Specify the root installation directory for the WOW64 shared components.
INSTALLSHAREDWOWDIR="D:Program Files (x86)Microsoft SQL Server"
; Specify the installation directory.
INSTANCEDIR="D:Program FilesMicrosoft SQL Server"
; 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 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="MSSQLSERVER“
; Agent account name
AGTSVCACCOUNT="NT AUTHORITYNETWORK SERVICE"
; Auto-start service after installation.
AGTSVCSTARTUPTYPE="Automatic"
; Startup type for Integration Services.
ISSVCSTARTUPTYPE="Automatic"
; Account for Integration Services: DomainUser or system account.
ISSVCACCOUNT="NT AUTHORITYNetworkService“
; Controls the service startup type setting after the service has been created.
ASSVCSTARTUPTYPE="Automatic"
; The collation to be used by Analysis Services.
ASCOLLATION="Latin1_General_CI_AS"
; The location for the Analysis Services data files.
ASDATADIR="Data"
; The location for the Analysis Services log files.
ASLOGDIR="Log"
; The location for the Analysis Services backup files.
ASBACKUPDIR="Backup"
; The location for the Analysis Services temporary files.
ASTEMPDIR="Temp"
; The location for the Analysis Services configuration files.
ASCONFIGDIR="Config“
; Specifies whether or not the MSOLAP provider is allowed to run in process.
ASPROVIDERMSOLAP="1″
; A port number used to connect to the SharePoint Central Administration web application.
FARMADMINPORT="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: DomainUser or system account.
SQLSVCACCOUNT="NT AUTHORITYNETWORK SERVICE"
; Default directory for the Database Engine user databases.
SQLUSERDBDIR="K:Microsoft SQL ServerMSSQLData"
; Default directory for the Database Engine user database logs.
SQLUSERDBLOGDIR="L:Microsoft SQL ServerMSSQLDataLogs"
; Directory for Database Engine TempDB files.
SQLTEMPDBDIR="T:Microsoft SQL ServerMSSQLData"
; Directory for the Database Engine TempDB log files.
SQLTEMPDBLOGDIR="T:Microsoft SQL ServerMSSQLDataLogs"
; Provision current user as a Database Engine system administrator for SQL Server 2008 R2 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"
; Specifies how the startup mode of the report server NT service. When
; Manual – Service startup is manual mode (default).
; Automatic – Service startup is automatic mode.
; Disabled – Service is disabled
RSSVCSTARTUPTYPE="Automatic"
; Specifies which mode report server is installed in.
; Default value: “FilesOnly"
RSINSTALLMODE="FilesOnlyMode“
; Accept SQL Server 2008 R2 license terms
IACCEPTSQLSERVERLICENSETERMS="TRUE"

Source http://www.derekseaman.com/2010/07/unattended-sql-2008-r2-scripts.html

###Sample Configuration 2

;SQLSERVER2008 Configuration File
[SQLSERVER2008]
; Specify the Instance ID for the SQL Server features you have specified. SQL Server directory structure, registry structure, and service names will reflect the instance ID of the SQL Server instance. 
INSTANCEID="MSSQLSERVER"
; Specifies a Setup work flow, like INSTALL, UNINSTALL, or UPGRADE. This is a required parameter. 
ACTION="Install"
; Specifies features to install, uninstall, or upgrade. The list of top-level features include SQL, AS, RS, IS, and Tools. The SQL feature will install the database engine, replication, and full-text. The Tools feature will install Management Tools, Books online, Business Intelligence Development Studio, and other shared components. 
FEATURES=SQLENGINE,REPLICATION,FULLTEXT,CONN,IS,BC,SDK,SSMS,ADV_SSMS,OCS
; Displays the command line parameters usage 
HELP="False"
; Specifies that the detailed Setup log should be piped to the console. 
INDICATEPROGRESS="False"
; Setup will not display any user interface. 
QUIET="False"
; Setup will display progress only without any user interaction. 
QUIETSIMPLE="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"
; Detailed help for command line argument ENU has not been defined yet. 
ENU="True"
; Parameter that controls the user interface behavior. Valid values are Normal for the full UI, and AutoAdvance for a implied UI. 
UIMODE="Normal"
; 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 root installation directory for native shared components. 
INSTALLSHAREDDIR="D:\Program Files\Microsoft SQL Server"
; Specify the root installation directory for the WOW64 shared components. 
INSTALLSHAREDWOWDIR="D:\Program Files (x86)\Microsoft SQL Server"
; Specify the installation directory. 
INSTANCEDIR="D:\Program Files\Microsoft SQL Server"
; 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 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="MSSQLSERVER"
; Agent account name 
AGTSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE"
; Auto-start service after installation.  
AGTSVCSTARTUPTYPE="Automatic"
; Startup type for Integration Services. 
ISSVCSTARTUPTYPE="Automatic"
; Account for Integration Services: Domain\User or system account. 
ISSVCACCOUNT="NT AUTHORITY\NetworkService"
; Controls the service startup type setting after the service has been created. 
ASSVCSTARTUPTYPE="Automatic"
; The collation to be used by Analysis Services. 
ASCOLLATION="Latin1_General_CI_AS"
; The location for the Analysis Services data files. 
ASDATADIR="Data"
; The location for the Analysis Services log files. 
ASLOGDIR="Log"
; The location for the Analysis Services backup files. 
ASBACKUPDIR="Backup"
; The location for the Analysis Services temporary files. 
ASTEMPDIR="Temp"
; The location for the Analysis Services configuration files. 
ASCONFIGDIR="Config"
; Specifies whether or not the MSOLAP provider is allowed to run in process. 
ASPROVIDERMSOLAP="1"
; A port number used to connect to the SharePoint Central Administration web application. 
FARMADMINPORT="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="NT AUTHORITY\NETWORK SERVICE"
; Windows account(s) to provision as SQL Server system administrators. 
SQLSYSADMINACCOUNTS="SQLDBPool\Jugal"
; The default is Windows Authentication. Use "SQL" for Mixed Mode Authentication. 
SECURITYMODE="SQL"
; The Database Engine root data directory. 
INSTALLSQLDATADIR="F:\"
; Default directory for the Database Engine user databases. 
SQLUSERDBDIR="F:\"
; Default directory for the Database Engine user database logs. 
SQLUSERDBLOGDIR="F:\"
; Directory for Database Engine TempDB files. 
SQLTEMPDBDIR="G:\"
; Provision current user as a Database Engine system administrator for SQL Server 2008 R2 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="Disabled"
; Specifies how the startup mode of the report server NT service.  When 
; Manual - Service startup is manual mode (default).
; Automatic - Service startup is automatic mode.
; Disabled - Service is disabled 
RSSVCSTARTUPTYPE="Automatic"
; Specifies which mode report server is installed in.  
; Default value: "FilesOnly"  
RSINSTALLMODE="FilesOnlyMode"
; Add description of input argument FTSVCACCOUNT 
FTSVCACCOUNT="NT AUTHORITY\LOCAL SERVICE"

Source: https://www.mssqltips.com/sqlservertip/2511/standardize-sql-server-installations-with-configuration-files/

##Additional Sources

1 Like

Port Opening related stuff

netsh advfirewall firewall add rule name="Open SQL Server Port 1433" dir=in action=allow protocol=TCP localport=1433

netsh advfirewall firewall add rule name="SQL Server Analysis Services inbound on TCP 2383" dir=in action=allow protocol=TCP localport=2383 profile=domain

Source: https://miteshc.wordpress.com/2014/04/02/installing-sql2014-on-win2012r2/

2 Likes

Bit above my knowledge level but if this is what it sounds - a script to configure SQL - then its likely to save allot of questions of the forum. :smile:

We should be able to generate these config files with SQL Server Setup application. Basically it saves setup parameters to a file and allow you to load it while setting up another SQL Server instance.

Couldn’t find it on Express Edition setup. I’ll try tomorrow with other editions.

Very effective will give it a try on my virtual machine and inform you of any issues this can save us a lot of time when setting up a server.

Btw i had read about it some time back you can sample this

2 Likes