There have been some great posts flying around talking about the RunVirtual feature in App-V 5.0 over the last few weeks and months, both from some of the guys here at Microsoft and our MVPs. So I thought I’d break it down in true VirtualVibes fashion as an end-to-end step by step!
RunVirtual is a way to detect a local native process and use it as a trigger to launch it within the virtual environment of an App-V package. A great candidate for IE plugins for local IE, Office Plugins for local Office or other such scenarios. The cool thing about the feature as that your user just does what they normally do and it’s much more seamless than sequencing shortcuts in App-V 4.6.
Take this scenario, we have sequenced Adobe Reader and Adobe Flash Player and delivered them to our client.
Internet Explorer is of course locally installed which means we hit a few little niggles when it comes to the integration our two Adobe products:
When I go a flash website, IE cannot find the virtual instance of flash player that I have delivered and as it isn’t locally installed either, the webpage fails to load.
Not only that but when we open a PDF from IE, the full Adobe Reader application opens it in a separate window, again IE can’t embed the PDF in the open IE session because it is unable to interact with the virtualised environment for the Adobe Reader package!
You will find the registry key here: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual
To get a virtual application to pull in the local process all we have to do is create a new key for the process we want to target, in this case iexplore.exe:
Now all we have to do is edit the (Default) REG_SZ value with the package GUID and version GUID (separated by an underscore) of the App-V package we need our local process to see.
Let’s target Adobe Reader and get the GUID with the following command:
One thing you will notice above is the package is published globally to the machine, this is a requirement for RunVirtual to work. More on how to achieve that here.
Now all we have to do is paste into the value these GUIDS in the format of <PakageGUID>_<VersionGUID> which means 1d30b891-53d6-476b-bd4a-9533ae06d903_f7d2c119-5abf-4b0c-b64e-fc85e7eff571
That’s it! Next time we launch Internet Explorer (iexplore.exe) and navigate to a .PDF we find the embedded Adobe Reader addin component is loaded into the IE window.
So that’s cool, but what about flash player? Well another small limitation of this feature is that we can’t list multiple applications. However to work around this we can put the applications into a connection group. This will mean when Adobe Reader is launched the other members of the connection group will also be launched, in this scenario you must consider the application that is most important to you and ensure it is a member of a connection group that contains the other applications you are interested in launching because the registry still only specifies the single application, this might not always be ideal.
Flash Player is now in a connection group with Adobe Reader, this means we don’t need to change any of the registry settings. Next time we launch Internet Explorer, we will launch Adobe Reader and because it is in a connection group with Flash Player that will also launch with it.
As you see now our Flash website will load successfully and it’s all thanks to the humble new feature in App-V 5.0 called RunVirtual!
***UPDATE*** With shell extension support introduced with App-V 5.0 SP2, the RunVirtual feature is not needed for instances such as above, read about it all here.
***UPDATE*** RunVirtual now supports user targeting with 5.0 SP3, read all about it here.