Identify and load all profile registry hives.In addition to targeting the various registry locations I want to: Now that I have the targets it’s time to write the script. The clean-up utility cleaned up most of this, but one was left over for me A list of values to search for under ‘HKCU\Software\Microsoft\Installer\Products’ in order to determine of the root key should be deleted.A list of values to search for under ‘HKCU\Software\Classes\Interface’ in order to determine of the root key should be deleted.A list of values to search for under ‘HKCU\Software\Classes\CLSID’ in order to determine of the root key should be deleted.A static list of unique registry keys under the user’s profile (this is a good start, but I noticed that some of the IDs in CLSID and Interface are different between versions).I imported those into Excel and used filtering/VLOOKUPs to extract what I needed.Īfter chopping up the data I am left with the following groups of items to target: I used SuperOrca to pull the ‘Registry’ table from each MSI. I decided to extract the MSIs from the installer I was testing with and dissect them. To do so I had to create a full list of everything I had to target. I decided to build a wrapper script around the Citrix Receiver Clean-up Utility to fill in the gaps. It doesn’t always kill processes correctly leaving file/directories behind.This caused it not to fully process other user profiles on the machine When it is run against a machine it doesn’t properly load other existing (unloaded) profiles.In addition to this there are other issues: HKCU\Software\Microsoft\Installer\Products – MSI installer product codes.HKCU\SOFTWARE\MozillaPlugins\* – Firefox plugin registrations.HKCU\Software\Classes\PROTOCOLS\Filter\* – Protocol filter handlers.HKCU\Software\Classes\MIME\Database\Content Type\* – x-ica MIME types.HKCU\Software\Classes\WOW6432Node\Interface\* – MANY interface name to interface ID mappings (32-bit).HKCU\Software\Classes\Interface\* – MANY interface name to interface ID mappings.HKCU\Software\Classes\WOW6432Node\CLSID\* – MANY COM class object GUIDs (32-bit).HKCU\Software\Classes\CLSID\* – MANY COM class object GUIDs.HKCU\Software\Classes\Applications\* – More app registrations.HKCU\Software\Classes\AppID\* – AppID registrations.HKCU\Software\Classes\* – File Associations and COM object registrations.Here is a high-level list of what was left behind in the registry: Let’s take a look what Citrix is missing in their utility… To do this I take a clean profile, install Citrix Receiver 4.3.100 (not elevated/per-user install), and uninstall it using the Receiver Clean-up Utility (running as an administrator/elevated) while the regular user is still logged in and has their profile loaded. It seems that since then they’ve updated the utility to clean installs up to version 4.3. They later came back saying they no longer are supporting the utility. I tried logging a case (and an enhancement request) with Citrix about two years ago stating their ‘ Receiver Clean-up Utility ‘ utility does not properly clean up these installations. I spent time a while back figuring out how to clean it up manually, but it is a major headache to do so. My last two work environments (and current) have been plagued with these installations. Their tools only clean up a fraction of what is actually there. Even if you get it removed the uninstaller and Citrix’s own cleanup utilities do an awful job at cleaning up the registered classes/components in the per-user installation. Even worse the machine/profile usually winds up being in a state where the per-user installation cannot be removed. When this happens the user that had the per-user installation cannot launch applications. You wind up with machines that have both installed. This creates a huge headache when trying to mass deploy Receiver (now Citrix Workspace) to the environment. For years Citrix has created the Receiver installer with per-user installation functionality where if the installer is launched in the context of a regular user it will install/register the components to the local user’s profile rather than just failing with a permission error.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |