SQL Server 2008 Setup fails to Install with Error 1402

SQL Server 2008 setup may fail with the following error even though you are running the setup as administrator. You might get these kind of errors in Detail.txt after you cleaned up an failed setup (from Add/Remove Programs) and try to run the setup again.

Error 1402. Could not open key: UNKNOWN\Components\493032C95B52CBD448DD2B5A52C50E9A\3EC761FD7E06AE4499CE52705CF173EA. 

System error 5. Verify that you have sufficient access to that key, or contact your support personnel.

Action ended 20:37:24: InstallFinalize. Return value 3.

Note: The above GUID may be different in each case

When you search for the GUID that you see in the error in Registry, it maps to the following key

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\<GUID>

Though you might be running the setup as Administrator you may not be able to access the registry key and it sub keys

Even trying to delete the registry key might fail with the access denied errors

In our case the GUID in the error was pointing to MSXML which was already removed from Add/Remove Programs

There are multiple ways to approach this:

Workaround 1

· Download and install psexec utility from the following link

https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

· Open a command prompt (on Vista/Windows 7/2008) using 'run as administrator' option, for Windows (2000 /XP/2003) Hold down the shift key and right click on command prompt and choose run as.

· In the command prompt Navigate to the folder where PSEXEC is installed.

· Execute the following from the command prompt.

§ psexec -i -s cmd.exe

· This will invoke another command prompt running under ‘Local System’

· Using this command prompt open Registry Editor

Command prompt> regedit

· In registry editor navigate to the following hive

HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\

· Addthe user account used to run the installation under permissions for the above hive and grant ‘Full control’ for that user.

o Click on Advanced

clip_image002

o Under the Advanced security settings for Components choose the user and check the “Replace all existing inheritable permissions…………” check box as shown below and click OK

  clip_image002[5]

· Re-run the installation.

Workaround 2

As a workaround for the problem you can run the following command at the command prompt to reset the permissions in registry rather than rebuilding the box

SECEDIT /CONFIGURE /CFG %WINDIR%\INF\DEFLTBASE.INF /DB DEFLTBASE.SDB /VERBOSE /AREAS REGKEYS

Disclaimer: The above command would revert all security settings to the default and thus may be used as a workaround to avoid rebuilding the server.

Workaround 3

Another possible solution is for the ‘Administrator’ account to take ownership of HKEY_LOCAL_MACHINE registry hive. Owner can be found under Permissions->Advanced

Note:

This post should not be treated as the Microsoft’s Recommendation or Resolution to the problem, it is only a workaround which worked in our environment and so we would like to share it.

Rajesh Setlem , Aravind Lakshminarayanan
SE, Microsoft SQL Server.

Reviewed by
Shamik Ghosh & Sudarshan Narasimhan
Technical Lead, Microsoft SQL Server.