I started with the problem that odrive lost its right-click context menu on two Windows 10 boxes. A pain, but workable until I needed to restore multiple files from the cloud. I tried the “Repair” option on the installer to no effect.
OK, let’s uninstall odrive and reinstall. Now odrive simply does not run on either system. I see the launcher opening a pair of odrive.exe processes that terminate shortly by themselves.
Where does odrive hide its configuration data on Windows? The uninstaller appears unable to remove things to get back to a working state.
1: Delete %HOMEPATH%.odrive
2: Scour the registry for odrive keys (ignoring recent items entries) and nuke them,
Outcome: odrive installs and runs the initial setup again. Unfortunately context menu entries do not reappear.
More digging through the registry revealed that the Windows shell extension for odrive contained corrupt data. Deleting both the CLSID and registry keys that pointed to it, uninstalling odrive, and finally reinstalling odrive fixed the problem. Hallelujah!
The odrive team can improve matters here by offering (a) an uninstaller that offers the option to wipe all odrive data or (b) an installer that allows overwriting the full configuration rather than leaving existing stuff alone. Perhaps an in-place upgrade vs. overwrite option?
There is some manual clean-up the uninstall does in a post-uninstall script because of the mix of system vs user registry entries. Here is what the uninstaller tries to remove when uninstalling, in addition to removing the app from Program Files, renaming the odrive folder to a backup name, removing the .odrive folder, and some “automatic” removal by Windows during the uninstall process:
Are the entires you found within this set? Its possible that there were errors removing them if there was some sort of corruption in the registry and the attempt was failing.
I tried again in a VM on a stock Win 10 x64 installation. After installing odrive and accessing various encrypted shares, there were the standard plethora of odrive.* keys in HKCU\Software. Most but not all were removed when uninstalling odrive.
Is there any chance that odrive can follow standard conventions and place all subkeys inside a single HKCU\Software\odrive entry? Cleanup would be made easier.
I wonder if this could have to do with the user running the uninstall. The HKCU entries and profile entries are tricky because they only apply to the user running the uninstaller. You can end up in a situation where either you have multiple users or you have a different user running the uninstall. In this case I can definitely see that things would be missed.
Consolidating the entries is definitely a better way to organize, and is done in the next generation stuff.
I’ve been doing some testing and I am not seeing residual registry entries on uninstall when running uninstall as the logged-in user.
For reference, here is a powershell script that can be run as the currently logged-in user that should clean up everything: