Home > Blogs > VMware ThinApp Blog

Internet Explorer and Default Folder Isolations

Have you ever wondered why some folders such as Favorites are not automatically isolated?

Well, we’re here to answer this!

The Basics – A Refresher Course:

To explain why this is, we must take a step backwards and look at how ThinApp decides to set folder isolations.

Note: For more on how Folder Isolations work, see Peter Björk’s excellent “Isolation Modes Explained” video.

Getting back to how ThinApp decides what the default isolation will be for a folder (or registry key), aside from a few exceptions the following basic rule can be used.

  • If it is a new folder (something which was created by the application installed), the Isolation Mode will be set to FULL.
  • If it is an existing folder (one already present before the application install) and if the folder was modified by the application install, the Isolation Mode of the folder in the project will be set to WRITECOPY.
  • It should be noted, aside from what is set as a Default Folder Isolation the only folders which are always marked as MERGED isolation are Desktop, Personal, and Spool (inside the project Windows folder).

How Does This Affect an Internet Explorer ThinApp Package?

With the above understood, capturing Internet Explorer will have some exceptions. For example, the following folders will be created in the ThinApp project but will assume the Default Folder Isolation settings.

  • Cookies
  • History
  • Internet Explorer Cache
  • Favorites

This means, if the default folder isolation is MERGED (this being the default selection in the ThinApp Setup Capture wizard), then all Cookies, any IE history, any cache, and all Favorites will be written to the native hard drive instead of he sandbox.

Additionally, anything which resides in these folders on the native system will also appear within the virtualized Internet Explorer browser. For example, if I have shortcuts defined within the Favorites folder of the virtual browser, those will be present in the virtual browser – but so will the native shortcuts as well. This might be ok, but what if there are cookie or cache settings residing natively which interfere with the virtual IE?

The Problem:

The bottom line is, what if I don’t want the native folder contents to appear or affect my virtual browser? How do I isolate those folders?

The Solution:

Quite simply, the way this is fixed is by editing the folder isolation settings on the specific folders in the project and setting the isolation to FULL. To do this, just look for (or create) an ##ATTRIBUTES.INI file in the folder in question and set the DefaultFolderIsolation value within it to FULL.
Note: To be honest, I cheat and copy one from another folder in the project such as the %SYSTEMSYSTEM% folder and then edit it. This way I’m less likely to have an issue caused by a typo or syntax error.

I do this to all of the aforementioned folders above.

Once done, simply rebuild the project and retest (don’t forget to wipe any existing application Sandboxes before testing!).

That works for Win XP, but not newer Windows operating systems. How do I fix it for newer Windows operating systems?

In newer versions of Windows, a new system folder macros (also known as Shell Folders) were created by Microsoft to handle additional variables. One which affects a ThinApp packaged IE6 running on a newer Windows operating system is the %Common Favorites% folder. If this is not added to the VirtIE6 project and the %Favorites% folder is fully isolated, users will still see the natively saved IE Favorites within the virtual IE6 Favorites when executing the virtual IE6 on a newer Windows OS (i.e. Win 7).

To solve this, simply create a %Common Favorites% folder in the VirtIE6 ThinApp project and set its isolation to FULL as well by copying in the ##ATTRIBUTES.INI file and editing it as mentioned above. And then rebuild and test (and don’t forget to wipe away the old sandbox first before testing)!

– Posted using BlogPress from my iPad