Why Doesn't the Uninstall Process Uninstall Some Files and Folders?
Updated: 24 Sep 2007 | 2 comments
Have you ever wondered why Add/Remove Programs doesn't remove everything you think it should? WiseUser enlightens us with these answers to a few questions from the "mysteries of life" folder.
There are four common reasons for why files may not be removed during uninstallation:
- The components to which these files belong are marked as permanent. (This is done through the Attributes column of the Component table.)
- None of the components to which these files belong have component GUIDs. (The value for the component in the ComponentId column of the Component table is NULL). Components without GUIDs are not managed by Windows Installer.
- If the keypath of the component has a shared DLL refcount, then the component will not be uninstalled.
- If the component is installed in the system folder and at the time of uninstallation there is an external shared DLL refcount for any one file in the component, then the component will not be uninstalled.
Folders are not removed during uninstallation because of one of the following reasons:
- The RemoveFolders action is missing from the execute sequence table when both the CreateFolder table and CreateFolders action are used.
- The folders were not created by Windows Installer, therefore it will not remove them unless told to do so.
- Resources still exist in the folder.
blog entry Filed Under:

The Endpoint Management Community Blog is the perfect place to share short, timely insights including product tips, news and other information relevant to the Endpoint Management community. Any authenticated Connect member can contribute to this blog.
Comments
processes using file
To add this,if any process is running in background and if it is using any file which exist in application. Then that file may remain on system after uninstalltion.
Resolution for this use Kill process using custom action before remove file custom action.
Regards
Harsh M
Still no excuse
While I understand the reasons provided for retaining certain artifacts, settings, etc. during an uninstall process, the amount and type of items remaining in the registry, the %WINDIR%\System32, and other system areas is, IMHO, unacceptable. When you find registry entries remaining that are pointing to a non-existant harddrive paths the arguments for retention are lost.
I've just been through an agonizing ordeal with Altiris DS install/uninstall. A seemingly simple install to a custom directory was nothing but simple. PXE server / configuration issues, deployment errors, etc.
Don't get me wrong, I think the toolset is awesome for what it does for managing your assets; however, those responsible for the install/uninstall processes need to do some more SQA, V&V on their product.
Would you like to reply?
Login or Register to post your comment.