Great article so far. I'm just going through the steps to become familiar with the process and to build a lab environment once I have the process down.
I'm using the script to install SQL Server 2016 and it seemed to ignore my desired location that I configured in your script. It installed to C:\Program Files instead of D:\Program Files. Once the SQL installation was executed in the PowerShell ISE, the install time using the script was about 15 minutes.
This is the configurationfile.ini that was created/updated in the c:\scripts folder.
[OPTIONS]
Action="Install"
ErrorReporting="False"
Quiet="True"
Features="SQLENGINE,RS,CONN,IS,BC,SDK,BOL"
InstanceName="MSSQLSERVER"
InstanceDir="D:\Program Files\Microsoft SQL Server"
SQLSVCAccount="NT AUTHORITY\System"
SQLSysAdminAccounts="windowsnoob\buildtest"
SQLSVCStartupType="Automatic"
AGTSVCACCOUNT="NT AUTHORITY\SYSTEM"
AGTSVCSTARTUPTYPE="Automatic"
RSSVCACCOUNT="NT AUTHORITY\System"
RSSVCSTARTUPTYPE="Automatic"
ISSVCACCOUNT="NT AUTHORITY\System"
ISSVCSTARTUPTYPE="Disabled"
ASCOLLATION="Latin1_General_CI_AS"
SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS"
TCPENABLED="1"
NPENABLED="1"
IAcceptSQLServerLicenseTerms="True"
This is from the install sql server 2016.ps1 script:
# below variables are customizable
$folderpath="c:\Scripts"
$inifile="$folderpath\ConfigurationFile.ini"
# next line sets user as a SQL sysadmin
$yourusername="windowsnoob\buildtest"
# path to the SQL media
$SQLsource="J:\"
# configurationfile.ini settings https://msdn.microsoft.com/en-us/library/ms144259.aspx
$ACTION="Install"
$ASCOLLATION="Latin1_General_CI_AS"
$ErrorReporting="False"
$SUPPRESSPRIVACYSTATEMENTNOTICE="False"
$IACCEPTROPENLICENSETERMS="False"
$ENU="True"
$QUIET="True"
$QUIETSIMPLE="False"
$UpdateEnabled="True"
$USEMICROSOFTUPDATE="False"
$FEATURES="SQLENGINE,RS,CONN,IS,BC,SDK,BOL"
$UpdateSource="MU"
$HELP="False"
$INDICATEPROGRESS="False"
$X86="False"
$INSTANCENAME="MSSQLSERVER"
$INSTALLSHAREDDIR="D:\Program Files\Microsoft SQL Server"
$INSTALLSHAREDWOWDIR="D:\Program Files (x86)\Microsoft SQL Server"
$INSTANCEID="MSSQLSERVER"
$RSINSTALLMODE="DefaultNativeMode"
$SQLTELSVCACCT="NT Service\SQLTELEMETRY"
$SQLTELSVCSTARTUPTYPE="Automatic"
$ISTELSVCSTARTUPTYPE="Automatic"
$ISTELSVCACCT="NT Service\SSISTELEMETRY130"
$INSTANCEDIR="D:\Program Files\Microsoft SQL Server"
$AGTSVCACCOUNT="NT AUTHORITY\SYSTEM"
$AGTSVCSTARTUPTYPE="Automatic"
$ISSVCSTARTUPTYPE="Disabled"
$ISSVCACCOUNT="NT AUTHORITY\System"
$COMMFABRICPORT="0"
$COMMFABRICNETWORKLEVEL="0"
$COMMFABRICENCRYPTION="0"
$MATRIXCMBRICKCOMMPORT="0"
$SQLSVCSTARTUPTYPE="Automatic"
$FILESTREAMLEVEL="0"
$ENABLERANU="False"
$SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS"
$SQLSVCACCOUNT="NT AUTHORITY\System"
$SQLSVCINSTANTFILEINIT="False"
$SQLSYSADMINACCOUNTS="$yourusername"
$SQLTEMPDBFILECOUNT="1"
$SQLTEMPDBFILESIZE="8"
$SQLTEMPDBFILEGROWTH="64"
$SQLTEMPDBLOGFILESIZE="8"
$SQLTEMPDBLOGFILEGROWTH="64"
$ADDCURRENTUSERASSQLADMIN="True"
$TCPENABLED="1"
$NPENABLED="1"
$BROWSERSVCSTARTUPTYPE="Disabled"
$RSSVCACCOUNT="NT AUTHORITY\System"
$RSSVCSTARTUPTYPE="Automatic"
$IAcceptSQLServerLicenseTerms="True"
Have a great day!