ArcGIS for Desktop 10.3-10.4 not starting and looping HKCR in Registry

2071
0
01-27-2017 02:08 AM
SverkerNorlander
Esri Contributor

Hi!

Just wanted to shed some light on a problem I have encountered from two different customers (I work at Esri Sweden tech support).

The problem:

When starting ArcMap it will, if it is authorized, stop att "Initializing license".

When starting ArcGIS Administrator (Single Use) it will freeze when going to the Desktop -> Availability tab/folder.

If running Concurrent Use, it will freeze this way also when trying to Borrow a license or contacting the license server / changing the license server.

The cause of the problem:

The cause of the problem is that a lot of strange registry keys have been created under HKEY_CLASSES_ROOT, and if you look in Process Monitor at the process Arcmap.exe or ArcGISadmin.exe when they are frozen, you will see the process looping through the registry keys at the first entries after all the ".fileext" keys (i.e. usually after the .zip registry key) of HKEY_CLASSES_ROOT.

In our latest case, there were a few hundres of keys there that started with AccClientDocMgr.XXXXXX where XXXXXX seems to be various values from other registry keys below AccClientDocMgr.

So if the registry looks like this:

HKCR\AccClientDocMgr.AccClientDocMgr

HKCR\Access.ACCDAExtension

HKCR\Access.ACCDCFile

etc..

In a computer with the problem, it would look like:

HKCR\AccClientDocMgr.AccClientDocMgr

HKCR\AccClientDocMgr.ACCDAExtension

HKCR\AccClientDocMgr.ACCDCFile

etc...

So someway the value after the dot under the HKCR has been duplicated and put as new keys with the prefix of the first key (AccClientDocMgr). Also, searching for the UUID listed in the subkey CLSID would not return any result in the registry.

The solution:

Deleting all keys starting with AccClientDocMgr, or whatever they might start with in case you encounter similar problem - might not always be AccClientDocMgr, under HKEY_CLASSES_ROOT.

This is best done with some special software or powershell-script like this, replacing AccTest with the prefix that is relevant to your problem.
ALWAYS BACKUP THE REGISTRY BEFORE RUNNING THIS SCRIPT

New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
Get-ChildItem -Path HKCR:\AccTest* | foreach ($_) { If ($_.PsDrive) { Remove-Item -Path "$($_.PSDrive):\$($_.PSChildName)" -Recurse }}‍‍‍‍

Has anyone encountered this, and perhaps know the cause?

0 Replies