This can happen if the program's uninstaller is located in Program Files
, but the installer fails to put quotation marks around the path when storing the location in the registry. The result is that Windows tries to execute (for example) C:\Program Files\ProgramName\uninstall.exe
, but without the quotation marks it sees C:\Program
as the executable name and Files\ProgramName\uninstall.exe
as the command line arguments.
To fix this, try the following steps:
- Open
regedit.exe
- Navigate to
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
- Locate the key corresponding to the program you're trying to uninstall. Most programs will probably be listed by their GUID, so either step through them all or go to Edit -> Find to search for your program.
- In the right-hand pane, look for a value called UninstallString. Double-click it and place quotation marks around the path. Just the path, though (from
C:\...
to ...exe
), not any arguments that might be following it. If in doubt, post the current value here.
- Try to uninstall the program again. If it still doesn't work, post the original value of UninstallString here.
- Optional: check the program author's website for an updated version that stores its uninstaller information correctly.
Theoretically, you could also copy the program's uninstaller (assuming it's an .exe and you can find it) to C:\
and rename it to Program.exe
, but I'm not sure if that would even work. You could also take the corrected version of UninstallPath and save it to a batch file called C:\Program.bat
, which would probably work, but is still a more cumbersome solution than the above. I only list these methods for the sake of completeness.
1Keep in mind that for 32-bit apps on a 64-bit system they'll be listed under
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
– James T – 2019-05-27T16:18:06.660