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
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:
· Download and install psexec utility from the following link
· 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
· Add the user account used to run the installation under permissions for the above hive and grant ‘Full control’ for that user.
o Click on Advanced
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
· Re-run the installation.
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.
Another possible solution is for the ‘Administrator’ account to take ownership of HKEY_LOCAL_MACHINE registry hive. Owner can be found under Permissions->Advanced
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.
Shamik Ghosh & Sudarshan Narasimhan
Technical Lead, Microsoft SQL Server.