Sql-server – How to do unattended install of SQL Server 2012 Express from the Enterprise media

express-editioninstallationsql-server-2012

I have a requirement to install SQL Server 2012 Express on some machines, and SQL Server Enterprise on some others, and I'm attempting to avoid using separate packages to do so.

It's pretty simple to install SQL Server 2012 Express from the full Enterprise media when the installer is run interactively.

However, when I attempt to install Express in quiet mode using a generated configuration INI file, the installer hits a brick wall.

A digest of the error summary follows:

  Overall summary:
  Final result:                  Failed: see details below
  Exit code (Decimal):           -2068578304
  Exit facility code:            1204
  Exit error code:               0
  Exit message:                  RANU is supported only for SQL Server Express.
  Start time:                    2014-07-11 17:27:21
  End time:                      2014-07-11 17:27:51
  Requested action:              Install
...
Package properties:
  Description:                   Microsoft SQL Server 2012 
  ProductName:                   SQL Server 2012
  Type:                          RTM
  Version:                       11
  Installation location:         Z:\UIP-07.30\3rdParty\Microsoft\mssql\ent\x64\setup\
  Installation edition:          Evaluation
  Slipstream:                    True
  SP Level                       2

It's clear that the SQL Server installer is trying to install the wrong edition.

It's missing some info that should be in the INI file, and my best guess is that it's the PID key. With no PID at all, the installer defaults to installing the Eval edition (which causes it to halt because the RANU arg is valid only for Express). The PID drives the Edition that is selected for install.

The root problem (if the above is correct) is that a PID for Express edition must be specified, but this is not available anywhere as far as I can tell.

Am I barking up the right tree?

Does anyone know a valid PID for SQL Server Express?

Is there an alternate technique for using the full SQL media to do a silent/unattended install of Express?

EDIT:

Per request, below is the full SUMMARY.TXT output.

Overall summary:
  Final result:                  Failed: see details below
  Exit code (Decimal):           -2068578304
  Exit facility code:            1204
  Exit error code:               0
  Exit message:                  RANU is supported only for SQL Server Express.
  Start time:                    2014-07-11 17:22:07
  End time:                      2014-07-11 17:22:38
  Requested action:              Install

Setup completed with required actions for features.
Troubleshooting information for those features:
  Next step for SQLEngine:       SQL Server Setup was canceled before completing the operation. Try the setup process again.
  Next step for Replication:     SQL Server Setup was canceled before completing the operation. Try the setup process again.
  Next step for Conn:            SQL Server Setup was canceled before completing the operation. Try the setup process again.
  Next step for Adv_SSMS:        SQL Server Setup was canceled before completing the operation. Try the setup process again.
  Next step for SSMS:            SQL Server Setup was canceled before completing the operation. Try the setup process again.
  Next step for SNAC:            SQL Server Setup was canceled before completing the operation. Try the setup process again.
  Next step for SNAC_SDK:        SQL Server Setup was canceled before completing the operation. Try the setup process again.
  Next step for Writer:          SQL Server Setup was canceled before completing the operation. Try the setup process again.
  Next step for Browser:         SQL Server Setup was canceled before completing the operation. Try the setup process again.


Machine Properties:
  Machine name:                  FOO
  Machine processor count:       4
  OS version:                    Windows Server 2008 R2
  OS service pack:               Service Pack 1
  OS region:                     United States
  OS language:                   English (United States)
  OS architecture:               x64
  Process architecture:          64 Bit
  OS clustered:                  No

Product features discovered:
  Product              Instance             Instance ID                    Feature                                  Language             Edition              Version         Clustered  Configured

Package properties:
  Description:                   Microsoft SQL Server 2012 
  ProductName:                   SQL Server 2012
  Type:                          RTM
  Version:                       11
  Installation location:         Z:\UIP-07.30\3rdParty\Microsoft\mssql\ent\x64\setup\
  Installation edition:          Enterprise

  Slipstream:                    True
  SP Level                       2

Product Update Status:
  Success: KB 2958429

Product Updates Selected for Installation:
  Title:                         Service Pack 2
  Knowledge Based Article:       KB 2958429
  Version:                       11.2.5058.0
  Architecture:                  x64
  Language:                      1033

  Update Source:                 Slipstream


User Input Settings:
  ACTION:                        Install
  ADDCURRENTUSERASSQLADMIN:      false
  AGTSVCACCOUNT:                 NT AUTHORITY\NETWORK SERVICE
  AGTSVCPASSWORD:                <empty>
  AGTSVCSTARTUPTYPE:             Disabled
  ASBACKUPDIR:                   Backup
  ASCOLLATION:                   Latin1_General_CI_AS
  ASCONFIGDIR:                   Config
  ASDATADIR:                     Data
  ASLOGDIR:                      Log
  ASPROVIDERMSOLAP:              1
  ASSERVERMODE:                  MULTIDIMENSIONAL
  ASSVCACCOUNT:                  <empty>
  ASSVCPASSWORD:                 <empty>
  ASSVCSTARTUPTYPE:              Automatic
  ASSYSADMINACCOUNTS:            <empty>
  ASTEMPDIR:                     Temp
  BROWSERSVCSTARTUPTYPE:         Disabled
  CLTCTLRNAME:                   <empty>
  CLTRESULTDIR:                  <empty>
  CLTSTARTUPTYPE:                0
  CLTSVCACCOUNT:                 <empty>
  CLTSVCPASSWORD:                <empty>
  CLTWORKINGDIR:                 <empty>
  COMMFABRICENCRYPTION:          0
  COMMFABRICNETWORKLEVEL:        0
  COMMFABRICPORT:                0
  CONFIGURATIONFILE:             c:\foo.ini
  CTLRSTARTUPTYPE:               0
  CTLRSVCACCOUNT:                <empty>
  CTLRSVCPASSWORD:               <empty>
  CTLRUSERS:                     <empty>
  ENABLERANU:                    true
  ENU:                           true
  ERRORREPORTING:                false
  FEATURES:                      SQLENGINE, REPLICATION, CONN, SSMS, ADV_SSMS
  FILESTREAMLEVEL:               0
  FILESTREAMSHARENAME:           <empty>
  FTSVCACCOUNT:                  <empty>
  FTSVCPASSWORD:                 <empty>
  HELP:                          false
  IACCEPTSQLSERVERLICENSETERMS:  false
  INDICATEPROGRESS:              false
  INSTALLSHAREDDIR:              C:\Program Files\Microsoft SQL Server
  INSTALLSHAREDWOWDIR:           C:\Program Files (x86)\Microsoft SQL Server
  INSTALLSQLDATADIR:             <empty>
  INSTANCEDIR:                   C:\Program Files\Microsoft SQL Server
  INSTANCEID:                    SQLExpress
  INSTANCENAME:                  SQLEXPRESS
  ISSVCACCOUNT:                  NT AUTHORITY\Network Service
  ISSVCPASSWORD:                 <empty>
  ISSVCSTARTUPTYPE:              Automatic
  MATRIXCMBRICKCOMMPORT:         0
  MATRIXCMSERVERNAME:            <empty>
  MATRIXNAME:                    <empty>
  NPENABLED:                     0
  PID:                           *****
  QUIET:                         false
  QUIETSIMPLE:                   true
  ROLE:                          
  RSINSTALLMODE:                 DefaultNativeMode
  RSSHPINSTALLMODE:              DefaultSharePointMode
  RSSVCACCOUNT:                  <empty>
  RSSVCPASSWORD:                 <empty>
  RSSVCSTARTUPTYPE:              Automatic
  SAPWD:                         <empty>
  SECURITYMODE:                  SQL
  SQLBACKUPDIR:                  <empty>
  SQLCOLLATION:                  SQL_Latin1_General_CP1_CI_AS
  SQLSVCACCOUNT:                 AUTO2\AspectSQL
  SQLSVCPASSWORD:                <empty>
  SQLSVCSTARTUPTYPE:             Automatic
  SQLSYSADMINACCOUNTS:           AUTO2\ins, AUTO2\Administrator, Administrator
  SQLTEMPDBDIR:                  <empty>
  SQLTEMPDBLOGDIR:               <empty>
  SQLUSERDBDIR:                  <empty>
  SQLUSERDBLOGDIR:               <empty>
  SQMREPORTING:                  false
  TCPENABLED:                    0
  UIMODE:                        Normal
  UpdateEnabled:                 true
  UpdateSource:                  Slipstream
  X86:                           false

  Configuration file:            C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20140711_172127\ConfigurationFile.ini

Detailed results:
  Feature:                       Database Engine Services
  Status:                        Failed: see logs for details
  Reason for failure:            Setup was canceled for the feature.
  Next Step:                     SQL Server Setup was canceled before completing the operation. Try the setup process again.

  Feature:                       SQL Server Replication
  Status:                        Failed: see logs for details
  Reason for failure:            Setup was canceled for the feature.
  Next Step:                     SQL Server Setup was canceled before completing the operation. Try the setup process again.

  Feature:                       Client Tools Connectivity
  Status:                        Failed: see logs for details
  Reason for failure:            Setup was canceled for the feature.
  Next Step:                     SQL Server Setup was canceled before completing the operation. Try the setup process again.

  Feature:                       Management Tools - Complete
  Status:                        Failed: see logs for details
  Reason for failure:            Setup was canceled for the feature.
  Next Step:                     SQL Server Setup was canceled before completing the operation. Try the setup process again.

  Feature:                       Management Tools - Basic
  Status:                        Failed: see logs for details
  Reason for failure:            Setup was canceled for the feature.
  Next Step:                     SQL Server Setup was canceled before completing the operation. Try the setup process again.

  Feature:                       SQL Client Connectivity
  Status:                        Failed: see logs for details
  Reason for failure:            Setup was canceled for the feature.
  Next Step:                     SQL Server Setup was canceled before completing the operation. Try the setup process again.

  Feature:                       SQL Client Connectivity SDK
  Status:                        Failed: see logs for details
  Reason for failure:            Setup was canceled for the feature.
  Next Step:                     SQL Server Setup was canceled before completing the operation. Try the setup process again.

  Feature:                       SQL Writer
  Status:                        Failed: see logs for details
  Reason for failure:            Setup was canceled for the feature.
  Next Step:                     SQL Server Setup was canceled before completing the operation. Try the setup process again.

  Feature:                       SQL Browser
  Status:                        Failed: see logs for details
  Reason for failure:            Setup was canceled for the feature.
  Next Step:                     SQL Server Setup was canceled before completing the operation. Try the setup process again.

Rules with failures:

Global rules:

Scenario specific rules:

Rules report file:               C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20140711_172127\SystemConfigurationCheck_Report.htm

Exception summary:
The following is an exception stack listing the exceptions in outermost to innermost order
Inner exceptions are being indented

Exception type: Microsoft.SqlServer.Chainer.Infrastructure.InputSettingValidationException
    Message: 
        RANU is supported only for SQL Server Express.
    HResult : 0x84b40000
        FacilityCode : 1204 (4b4)
        ErrorCode : 0 (0000)
    Data: 
      SQL.Setup.FailureCategory = InputSettingValidationFailure
      DisableWatson = true
    Stack: 
        at Microsoft.SqlServer.Chainer.Infrastructure.InputSettingService.LogAllValidationErrorsAndThrowFirstOne(ValidationState vs)
        at Microsoft.SqlServer.Configuration.SetupExtension.ValidateFeatureSettingsAction.ExecuteAction(String actionId)
        at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
        at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun, ServiceContainer context)
    Inner exception type: Microsoft.SqlServer.Configuration.SqlEngine.ValidationException
        Message: 
                RANU is supported only for SQL Server Express.
        HResult : 0x851a0014
                FacilityCode : 1306 (51a)
                ErrorCode : 20 (0014)

And the INI file being passed, which was generated by the SQL 2012 GUI for an Express install run:

;SQL Server 2012 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,CONN,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="SQLExpress"

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

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

; Agent account name 

AGTSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE"

; Auto-start service after installation.  

AGTSVCSTARTUPTYPE="Disabled"

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

; 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="AUTO2\AspectSQL"

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

SQLSYSADMINACCOUNTS="AUTO2\ins" "AUTO2\Administrator" "Administrator"

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

SECURITYMODE="SQL"

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

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

NPENABLED="0"

; Startup type for Browser Service. 

BROWSERSVCSTARTUPTYPE="Disabled"

Best Answer

You were right about the pid.

Adding /PID="11111-00000-00000-00000-00000" to command line helps.

I had to search through the whole setup directory with RegEx -(.{5}|.{11})- and try everything I found. The right pid was in the file Microsoft.SqlServer.Configuration.SetupExtension.dll at address 000f68f4 (for SQL Server 2014 x64 setup media).