The Blown Light Bulb

Information worth to share...


Fix: SqlExpressRtc failure when installing Microsoft SQL server 2008 on a Domain Controller

These days we’ve been dealing with Microsoft Lync Server 2010 (we are practicing for 71-664: TS: Microsoft Lync Server 2010, Configuring beta exam). We are trying to deploy it on a single server with other Microsoft products to see possible compatibility issues and this raised when installing it on a Windows Server 2008 R2 domain controller.

We got stacked on the Microsoft SQL Express 2008 portion that installs the database engine and instance where the Central Management Store database should be located (holds user data for all Enterprise Edition servers within a pool).

Checking installation logs didn’t clarified things so much, but let us catch the installation statement that was failing to complete:

C:\ProgramData\Microsoft\Lync Server\Deployment\cache\4.0.7577.0\SQLEXPR_x64.EXE /Q /HIDECONSOLE /ACTION=Install /FEATURES=SQLEngine,Tools /INSTANCENAME=RTC /TCPENABLED=1 /SQLSVCACCOUNT=“NT AUTHORITY\NetworkService” /SQLSYSADMINACCOUNTS=“Builtin\Administrators” /BROWSERSVCSTARTUPTYPE=“Automatic” /AGTSVCACCOUNT=“NT AUTHORITY\NetworkService” /SQLSVCSTARTUPTYPE=Automatic

First of all, let me notice that installing Microsoft SQL Server 2008 on a Domain Controller is not recommended by Microsoft. For security reasons, Microsoft recommends to not install SQL Server 2008 R2 on domain controllers. SQL Server Setup will not block installation on a computer that is a domain controller, but the following limitation (among others) apply:

  • You cannot run SQL Server services on a domain controller under a local service account or a network service account.

This pointed us to the installation statement to review what we were trying to install; pay attention to the highlighted parts:

C:\ProgramData\Microsoft\Lync Server\Deployment\cache\4.0.7577.0\SQLEXPR_x64.EXE /Q /HIDECONSOLE /ACTION=Install /FEATURES=SQLEngine,Tools /INSTANCENAME=RTC /TCPENABLED=1 /SQLSVCACCOUNT=“NT AUTHORITY\NetworkService” /SQLSYSADMINACCOUNTS=“Builtin\Administrators” /BROWSERSVCSTARTUPTYPE=“Automatic” /AGTSVCACCOUNT=“NT AUTHORITY\NetworkService” /SQLSVCSTARTUPTYPE=Automatic

Yes, Microsoft Lync Server tries to install SQL Express using the NetworkService account. This can cause installation to fail on Domain Controllers; to move forward and get it installed, create a domain service account and replace it like we did:

E:\Setup\amd64\SQLEXPR_x64.EXE /ACTION=Install /FEATURES=SQLEngine,Tools /INSTANCENAME=RTC /TCPENABLED=1 /SQLSVCACCOUNT=“TESTLABS\SQLService” /SQLSYSADMINACCOUNTS=“Builtin\Administrators” /BROWSERSVCSTARTUPTYPE=“Automatic” /AGTSVCACCOUNT=“TESTLABS\SQLService” /SQLSVCSTARTUPTYPE=Automatic

Notice that we modified the path for SQLEXPR_x64.EXE in order to be able to launch it manually, also /Q and /HIDECONSOLE switches have been removed for better installation control. After these modifications installation continued and completed successfully:

We noticed the funny SQL warning during the prerequisites rule checking…