Scenario:

Windows 2008 R2 Core SP1 – Domain joined, updated.

Denali RC0 ISO File attached to VM.

Preparing Windows 2008 R2 Core for Installation

  1. Run the following Command File to pre prep the server.
1
2
3
4
5
6
7
8
9
DISM /Online /Enable-Feature /FeatureName:ServerCore-WOW64
DISM /Online /Enable-Feature /FeatureName:NetFx2-ServerCore
DISM /Online /Enable-Feature /FeatureName:NetFx2-ServerCore-WOW64
DISM /Online /Enable-Feature /FeatureName:NetFx3-ServerCore
DISM /Online /Enable-Feature /FeatureName:NetFx3-ServerCore-WOW64
DISM /Online /Enable-Feature /FeatureName:MicrosoftWindowsPowerShell
Start /w ocsetup ServerCore-WOW64
Start /w ocsetup NetFx2-ServerCore
Start /w ocsetup NetFx2-ServerCore-WOW64
  1. Download a special .net 4 package for Windows 2008 R2 Core from this location here.
  2. Run the .net 4 package and have it installed.
  3. Run sconfig.cmd and choose option 6 to install any further updates.
  4. Reboot the server

After this process, the Windows 2008 R2 SP1 Core is ready to be installed with Denali.

Installing Denali

  1. Denali can only be installed on command line prompt at this stage. But as far as testing goes, with some special modifications you can modify the installation experience to involve the GUI mode as well.
  2. The process described here involves , my favourite way of installing SQL, using a configuration file.

Configuration File

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
;SQL Server "2012" RC0 Configuration File
[OPTIONS]

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

ACTION="Install"

; 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,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,REPLICATION

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

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

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

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

; Agent account name

AGTSVCACCOUNT="DOMAIN_NAME\SQL_SERVICE_ACCOUNT"
AGTSVCPASSWORD="SERVICE_ACCOUNT_PASSWORD"

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

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

SQLSVCACCOUNT="DOMAIN_NAME\SQL_SERVICE_ACCOUNT"
SQLSVCPASSWORD="SERVICE_ACCOUNT_PASSWORD"

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

SQLSYSADMINACCOUNTS="DOMAIN_NAME\SQL_ADMIN_ACCOUNT1" "DOMAIN_NAME\SQL_ADMIN_ACCOUNT2"

; Provision current user as a Database Engine system administrator for SQL Server 2012 RC0 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"
IACCEPTSQLSERVERLICENSETERMS="TRUE"

Description for the configuration file

  1. Install mode to install a fresh install of Denali
  2. Installs only the Database engine and the Replication Service for SQL
  3. No Management Studio and Tools
  4. Uses default location for Data, Log , TempDB, TempLog and Backup File Location
  5. Domain_Name to be replaced with the domain name
  6. SQL_SERVICE_ACCOUNT to be replaced with the SQL Service account that you would use to run the SQL Services for Database , SSRS etc
  7. SERVICE_ACCOUNT_PASSWORD – password for all the service accounts
  8. SQL_ADMIN__ACCOUNT1 and 2 is for the SQL Admin Account.

Command Line file to kick start the Denali Installation using the above mentioned Config File

1
D:\Setup.exe /CONFIGURATIONFILE="C:\Scripts\SQL\DenaliConfig.ini" /INDICATEPROGRESS /SkipRules=NoReboot

Description for the command line file

  1. D:\Setup.exe – location of your Denali ISO or Media
  2. “C:\Scripts\SQL\DenaliConfig.ini” – location of this command line and config file on the Core SP1 server.
  3. /SkipRules=NoReboot – Issue with Core installation involving Denali – need this parameter for it to work. Reboot the system after installation is completed J

To have a view of all the parameters and installations available using configuration file here over here.

Tips and Tricks I picked up during this process

  1. To get to making folders and copying files (.net 4 installer , scripts etc.) over to the server core , try browsing from another domain joined machine to the core machine using \\NAME_CORE_SERVER\C$
  2. Spend some time on sconfig.cmd especially Configure Remote Management Features of server core

  3. Use Remote Computer Management from “MMC” console of a domain joined machine to manage your server core.