App-V Internet Explorer Add-on Conflict: Watch those Registry Keys

Students run into this problem in our App-V training classes every time.

The Problem

In one of the labs we deal with creating and deploying a handful of browser plugins in a connection group.  And everyone runs into an issue of some of them seemingly not working.  The lab specifies a set of plug-ins to use, but I usually encourage students to work off-script and sequence from a bigger set I have available or download something they use at work.  Typically, they sequence a bunch of add-ons, running a smoke test on each to verify operation.  Then, when they place them in a connection group, some don’t appear in the browser.

The Cause

The problem happens due to created registry keys.  Add-ons to the Internet Explorer are registered via one of several registry keys, by adding in a subkey with the appropriate information.  But out of the box, the naked OS does not have the base keys that you register under.  Thus, when you install the plug-in it creates the base key along with its subkey, both of which are then marked as “Override Local” keys.

In particular, I have noticed the following keys (under HKLM or HKCU):

  • Software\Microsof\Internet Explorer\Extensions
  • Software\Microsoft\Internet Explorer\MenuExt
  • Software\Microsoft\Internet Explorer\Explorer Bars
  • Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects

but there may be more not on my list yet.

Left as Override Local, these keys cause the add-on to work just great when tested alone, but placed in a connection group this package will cause other addons to not be seen.  The technical details and scenarios I described in the research paper Pellucidity and Deletion Objects: Connection Groups and Layering in App-V 5 a couple of years back.

The Solutions

The solution is to locate those keys and make sure they are marked “Merge with Local” in the sequencer.  There are three ways to handle this:

  1. View the virtual registry in the sequencer editor and manually locate and change the setting on those keys.
  2. Using AppV_Manage 3.11 or above, run the analyzer.  I have added warnings in the analyzer for the three specific keys above, as well as a bunch of other things that you should be aware of in your package.  Basically, if you see yellow in the analyzer, you had better check it out.
  3. Pre-create those keys in your sequencer image.  These are just like the ODBC key and dummy printer key that became best practices for sequencing over the years.  Those two keys you no longer have to worry about because the installer for the Sequencer creates them for you.

While the last solution is probably the one you should use, be aware that this is probably not a complete list.  A better practice is the first in the list; to always review the virtual registry keys for potential keys marked as override that should be marked as merge (to allow for integration) or those marked merge that should be marked as override (to prevent visibility of locally installed junk).  The same goes for file folders.

Other good advice…

Double-checking your package with an up-to-date AppV_Manage analyzer is also a really good idea (it is free). Now between updates to support new App-V features (4 releases adding features to App-V in the last 13 months), plus the additions I am constantly adding to the quality of the analyzer to help you understand more about what is in your package, your current version is probably out of date. So every time you think about  it, check the TMurgent home page to see if there is an update.  The sequencer editor hides an awful lot of detail that we can expose, and I am constantly looking for examples of problem packages that I can add detection of.  When the next version is posted (probably 3.11?) is released soon this will include::

  • Detection of bad ProgIDs.
  • Detection of shortcuts with spaces at the end.
  • Display of longest file path (could cause file-not-found issues).
  • Detection of Services ignored by the sequencer due to incorrect logon accounts.
  • These keys mentioned above, if marked Override Local.
  • Publishing issues with non-com based Browser Extensions.
  • Publishing issues with Com-based Browser Extensions.
  • Publishing issues with Browser Helper Objects.
  • Detection of internal scripts (Office 2013).
  • Overhauled Analysis of COM, including linking COM entries to usage.
  • Detection of whether the DCOM warning is real or not.
  • Counts of Registry Keys and Values, including those hidden deletion markers not shown by the sequencer.

 

 

 

 

By Tim Mangan

Tim is a Microsoft MVP, and a Citrix CTP Fellow. He is an expert in App-V and MSIX.