Using the installation script to install SQL Server Core 2019 and other versions of SQL Server is easy when using a premade script.
Using this script to install SQL Server will make it easier and quicker than installing SQL Server manually through its default installer program.
Using this script is demonstrated in our Windows 2016 Server Core installation instructional video.
You can easily edit the code below, then copy it into Notepad and save it as [CoreSQLInstall.ini] or [CoreSQLInstall2022.ini]
SQL Server 2019«
[CoreSQLInstall.ini]
[Edit the following lines]
  1. Domain name change - Lines 65, 78, 92
  2. Password change - Lines 66, 79
SQL Server 2022«
[CoreSQLInstall.ini]
[Edit the following lines]
  1. Domain name change - Lines 104, 133
  2. Domain Username change - Lines 142
  3. Password change - Lines 105, 134, 148
Create the following users in your Server Domains
[Active Directory Users and Computers]
[Lines #s]
  1. 65 - sqlagent
  2. 78 - sqlengine
  3. 92 - sqlcore01
[Give the users the following permission roles]
  1. Administrators
  2. Domain Admins
  3. Domain Computers
  4. Domain Controllers
  5. Domain Users
  6. IIS_IUSRS
[Properties of the user]
  1. Choose the [Member of] tab
  2. Then click [Add...]
  3. [Copy and paste method]
    Copy the following roles, and paste them into the [Enter the object names to select]
    Once pasted in, click [Check Names]
  4. Then click [OK]
Important
Warning You will receive a warning if a Role already exists, such as [Administrators].
[SQL Roles for Active Directory Users and Computers]
CFFCS | CarrzSynEdit: | SQL Script
Administrators; Domain Admins; Domain Computers; Domain Controllers; Domain Users; IIS_IUSRS

Several places will need to be changed if you choose to change the [SQL Instance Name].
Lines 16, 144
(Line 144, only change the Instance name, do not remove any other character.)
CoreSQLInstall.ini
CFFCS | CarrzSynEdit: | SQL Script

;--SQL Server 2019 Configuration File

[OPTIONS]

;--By specifying this parameter and accepting Microsoft R Open and Microsoft R Server terms, 

;--you acknowledge that you have read and understood the terms of use. 


IACCEPTSQLSERVERLICENSETERMS=true

;--Specifies a Setup workflow, like INSTALL, UNINSTALL, or UPGRADE. This is a required parameter. 


ACTION="Install"

;--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), or Analysis Services (AS). 


INSTANCENAME="SQL2019"

;--We need to add the features we want installed

FEATURES=SQLENGINE,REPLICATION,FULLTEXT,CONN

;--The default is Windows Authentication. Use "SQL" for Mixed Mode Authentication. Remove;--to switch on mixed mode

SECURITYMODE="SQL"
sapwd="PASSWORD"

;--Specify the root installation directory for shared components.  

;--This directory remains unchanged after shared components are already installed. 


INSTALLSHAREDDIR="D:\SQLShared64"

;--Specify the root installation directory for the WOW64 shared components.  

;--This directory remains unchanged after WOW64 shared components are already installed. 


INSTALLSHAREDWOWDIR="D:\SQLSharedx86"

;--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="SQL2019"

;--Specify the installation directory. 


INSTANCEDIR="D:\SQLInstance"

;--Specifies a cluster shared disk to associate with the SQL Server failover cluster instance. 


;--FAILOVERCLUSTERDISKS="2 - Data" "3 - Logs" "4 - Temp" "5 - Backup"


;--Specifies the name of the cluster group for the SQL Server failover cluster instance. 


;--FAILOVERCLUSTERGROUP="SQL Server (SQL2019)"


;--Specifies an encoded IP address. The encodings are semicolon-delimited (;), 

;--and follow the format ;
;;. Supported IP types include DHCP, IPV4, and IPV6. ;--FAILOVERCLUSTERIPADDRESSES="IPv4;192.168.2.44;DarkSQLCluster;255.255.255.0" ;--Specifies the name of the SQL Server failover cluster instance. ;--This name is the network name that is used to connect to SQL Server services. ;--FAILOVERCLUSTERNETWORKNAME="DarkSQLCluster" ;--Agent account name AGTSVCACCOUNT="YOUR-DOMAIN-NAME-HERE\sqlagent" AGTSVCPASSWORD=PASSWORD ;--The max degree of parallelism (MAXDOP) server configuration option. SQLMAXDOP="2" ;--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="YOUR-DOMAIN-NAME-HERE\sqlengine" SQLSVCPASSWORD=PASSWORD ;--Supposed to set at Developer Edition??? PID=22222-00000-00000-00000-00000 ;--Set to "True" to enable instant file initialization for SQL Server service. ;--f enabled, Setup will grant Perform Volume Maintenance Task privilege to the Database Engine Service SID. ;--This may lead to information disclosure as it could allow deleted content to be accessed by an unauthorized principal. SQLSVCINSTANTFILEINIT="False" ;--Windows account(s) to provision as SQL Server system administrators. SQLSYSADMINACCOUNTS="YOUR-DOMAIN-NAME-HERE\sqlcore01" ;--The default is Windows Authentication. Use "SQL" for Mixed Mode Authentication. SECURITYMODE="SQL" ;--The number of Database Engine TempDB files. SQLTEMPDBFILECOUNT="2" ;--Specifies the initial size of a Database Engine TempDB data file in MB. SQLTEMPDBFILESIZE="8" ;--Specifies the automatic growth increment of each Database Engine TempDB data file in MB. SQLTEMPDBFILEGROWTH="64" ;--Specifies the initial size of the Database Engine TempDB log file in MB. SQLTEMPDBLOGFILESIZE="8" ;--Specifies the automatic growth increment of the Database Engine TempDB log file in MB. SQLTEMPDBLOGFILEGROWTH="64" ;--The Database Engine root data directory. F INSTALLSQLDATADIR="F:\SQLDB" ;--Default directory for the Database Engine user databases. F SQLUSERDBDIR="F:\SQLData" ;--Default directory for the Database Engine user database logs. G SQLUSERDBLOGDIR="G:\SQLLog" ;--Directories for Database Engine TempDB files. H SQLTEMPDBDIR="H:\SQLData" ;--Directory for the Database Engine TempDB log files. H SQLTEMPDBLOGDIR="H:\SQLLog" ;--Default directory for the Database Engine backup files. I SQLBACKUPDIR="I:\SQLBackup" ;--Add description of input argument FTSVCACCOUNT FTSVCACCOUNT="NT Service\MSSQLFDLauncher$SQL2019" ;--Use SQLMAXMEMORY to minimize the risk of the OS experiencing detrimental memory pressure. SQLMAXMEMORY="2147483647" ;--Use SQLMINMEMORY to reserve a minimum amount of memory available to the SQL Server Memory Manager. SQLMINMEMORY="0" ;--Detailed help for command line argument ENU has not been defined yet. ENU="True" ;--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"

CoreSQLInstall2022.ini
CFFCS | CarrzSynEdit: | SQL Script
;SQL Server 2022 Configuration File
[OPTIONS]

; By specifying this parameter and accepting Microsoft R Open and Microsoft R Server terms, you acknowledge that you have read and understood the terms of use. 

IACCEPTPYTHONLICENSETERMS="False"

IAcceptSQLServerLicenseTerms="True"

; Specifies a Setup work flow, like INSTALL, UNINSTALL, or UPGRADE. This is a required parameter. 

ACTION="Install"

; By specifying this parameter and accepting Microsoft R Open and Microsoft R Server terms, you acknowledge that you have read and understood the terms of use. 

IACCEPTROPENLICENSETERMS="False"

; Specifies that SQL Server Setup should not display the privacy statement when ran from the command line. 

SUPPRESSPRIVACYSTATEMENTNOTICE="False"

; Use the /ENU parameter to install the English version of SQL Server on your localized Windows operating system. 

ENU="True"

; Indicates whether the supplied product key is covered by Service Assurance. 

PRODUCTCOVEREDBYSA="False"

; Specifies that SQL Server Setup should not display the privacy statement when ran from the command line. 

SUPPRESSPRIVACYSTATEMENTNOTICE="False"

; Setup will not display any user interface. 

QUIET="False"

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

QUIETSIMPLE="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"

; 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"

; If this parameter is provided, then this computer will use Microsoft Update to check for updates. 

USEMICROSOFTUPDATE="False"

; Specifies that SQL Server Setup should not display the paid edition notice when ran from the command line. 

SUPPRESSPAIDEDITIONNOTICE="False"

; 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"

; Specifies features to install, uninstall, or upgrade. The list of top-level features include SQL, AS, 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 shared components. 

FEATURES=SQLENGINE,REPLICATION,FULLTEXT,CONN

; Displays the command line parameters usage. 

HELP="False"

; Specifies that the detailed Setup log should be piped to the console. 

INDICATEPROGRESS="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), or Analysis Services (AS). 

INSTANCENAME="SQL2022"

; Specify the root installation directory for shared components.  This directory remains unchanged after shared components are already installed. 

INSTALLSHAREDDIR="D:\SQLShared64"

; Specify the root installation directory for the WOW64 shared components.  This directory remains unchanged after WOW64 shared components are already installed. 

INSTALLSHAREDWOWDIR="D:\SQLSharedx86"

; 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="SQL2022"

; Startup type for the SQL Server CEIP service. 

SQLTELSVCSTARTUPTYPE="Automatic"

; Account for SQL Server CEIP service: Domain\User or system account. 

SQLTELSVCACCT="NT Service\SQLTELEMETRY$SQL2022"

; Specify the installation directory. 

INSTANCEDIR="D:\SQLInstance"

; Agent account name. 

AGTSVCACCOUNT="YOUR-DOMAIN-NAME-HERE\sqlagent"
AGTSVCPASSWORD="PASSWORD"

; Auto-start service after installation.  

AGTSVCSTARTUPTYPE="Manual"

; Startup type for the SQL Server service. 

SQLSVCSTARTUPTYPE="Automatic"

; Level to enable FILESTREAM feature at (0, 1, 2 or 3). 

FILESTREAMLEVEL="0"

; The max degree of parallelism (MAXDOP) server configuration option. 

SQLMAXDOP="8"

; 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="YOUR-DOMAIN-NAME-HERE\sqlengine"
SQLSVCPASSWORD=PASSWORD

; Set to "True" to enable instant file initialization for SQL Server service. If enabled, Setup will grant Perform Volume Maintenance Task privilege to the Database Engine Service SID. This may lead to information disclosure as it could allow deleted content to be accessed by an unauthorized principal. 

SQLSVCINSTANTFILEINIT="False"

; Windows account(s) to provision as SQL Server system administrators. 

SQLSYSADMINACCOUNTS="YOUR-DOMAIN-NAME-HERE\username1"
; You can add more users by simply adding to what is above... "YOUR-DOMAIN-NAME-HERE\username2"

; The default is Windows Authentication. Use "SQL" for Mixed Mode Authentication. 

SECURITYMODE="SQL"
sapwd="PASSWORD"

; The number of Database Engine TempDB files. 

SQLTEMPDBFILECOUNT="8"

; Specifies the initial size of a Database Engine TempDB data file in MB. 

SQLTEMPDBFILESIZE="8"

; Specifies the automatic growth increment of each Database Engine TempDB data file in MB. 

SQLTEMPDBFILEGROWTH="64"

; Specifies the initial size of the Database Engine TempDB log file in MB. 

SQLTEMPDBLOGFILESIZE="8"

; Specifies the automatic growth increment of the Database Engine TempDB log file in MB. 

SQLTEMPDBLOGFILEGROWTH="64"

; The Database Engine root data directory. 

INSTALLSQLDATADIR="F:\SQLDB"

; Default directory for the Database Engine backup files. 

SQLBACKUPDIR="I:\SQLBackup"

; Default directory for the Database Engine user databases. 

SQLUSERDBDIR="F:\SQLData"

; Default directory for the Database Engine user database logs. 

SQLUSERDBLOGDIR="G:\SQLLog"

; Directories for Database Engine TempDB files. 

SQLTEMPDBDIR="H:\SQLData"

; Directory for the Database Engine TempDB log files. 

SQLTEMPDBLOGDIR="H:\SQLLog"

; Provision current user as a Database Engine system administrator for SQL Server 2022 Express. 

ADDCURRENTUSERASSQLADMIN="False"

; Specify 0 to disable or 1 to enable the TCP/IP protocol. 

TCPENABLED="0"

; Specify 0 to disable or 1 to enable the Named Pipes protocol. 

NPENABLED="0"

; Startup type for Browser Service. 

BROWSERSVCSTARTUPTYPE="Disabled"

; User account for Full-text Filter Daemon Host. 

FTSVCACCOUNT="NT Service\MSSQLFDLauncher$SQL2022"

; Use SQLMAXMEMORY to minimize the risk of the OS experiencing detrimental memory pressure. 

SQLMAXMEMORY="2147483647"

; Use SQLMINMEMORY to reserve a minimum amount of memory available to the SQL Server Memory Manager. 

SQLMINMEMORY="0"

Firewall Rules for Remote access to your SQL Server.
This must be applied to all Server Cores with SQL Server installed.
[Powershell]
CFFCS | CarrzSynEdit: | PS (PowerShell)

New-NetFirewallRule -DisplayName "SQL Server" -Direction Inbound -Protocol TCP -LocalPort 1433 -Action allow
New-NetFirewallRule -DisplayName "SQL Admin Connection" -Direction Inbound -Protocol TCP -LocalPort 1434 -Action allow
New-NetFirewallRule -DisplayName "SQL Database Management" -Direction Inbound -Protocol UDP -LocalPort 1434 -Action allow
New-NetFirewallRule -DisplayName "SQL Browser" -Direction Inbound -Protocol TCP -LocalPort 2382 -Action allow