Question
When I tried to install a new version of DSSAT on Windows 7, I get the “Error 1402, could not open key: UNKNOWN\Components\” followed by two 32 digit hexadecimal strings, and this keeps me from installing the software. Is there a solution?
Answer
If you wish to install the newest version of DSSAT (e.g., 4.5.1.023) over an older version, the installer will ask you to remove the older version and will then exit. When I tried to remove my old version of DSSAT (e.g., 4.5.1.012), I got the Windows “Error 1402, could not open key: UNKNOWN\Components\” followed by two 32 digit hexadecimal strings. This is a Windows problem apparently caused when a former uninstall or upgrade of the product did not complete properly, so that there are some registry keys left with bad access control lists (ACLs) of the Windows graphical user interface (GUI). To fix it you need to edit the registry, which is not particularly complicated, but is certainly not for the fainthearted. It also helps if you know something about the structure of the registry and how REGEDIT works.
Before you do anything, you should make a backup of the registry. If you like playing with fire, you can skip this step, but REGEDIT makes changes in real-time and has no undo facility, so that if you make a mistake you will have use System Restore to return your machine to an earlier date. In the worst case, you are looking at a reinstall of Windows. The easiest way to make a backup of the registry is to create a restore point. In Windows 7, open the Control Panel and click System protection. Make sure that at least the System folder has its protection setting as “On”. Click the Create button. You will be asked to name the restore point (the system will add the time and date automatically), and inform you when the restore point has been created successfully.
After backing up the registry, load REGEDIT and browse to the key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components. If you do not know how to do this then you probably should go no further and seek help from someone who does know, and ask them to follow the instructions below.
- Right click on Components click on Permissions… in the pop-up option box.
- Click the Advanced button
- Select the “Owner” tab
- Select Administrators (Group) and click Apply.
- Select the check box titled “Replace owner on sub containers and objects” and click Apply.
- Select the Permissions tab, select the check box titled “Replace all child objects with inheritable permissions from this object” and click Apply.
Then you can go ahead and install the new version of DSSAT. Good luck!