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.
Great post Thamim but I think you need to emphasize more, that in this situation you have to start Adobe Reader first to get Flash and other plugins to work in the connection group. Adobe Reader is initiating the connection group and that is the reason why you can't start flash from new IE window. This means you really have to consider which plugin is the most important to you - in my case Java was chosen.
I really hope this feature will be expanded in a hotfix or service pack, cause I can see several situations where I want iexplore.exe to look into the virtual bubble.
Hi Thomas, you are totally correct, I have added a extra line to emphasise this. We are seeing really positive feedback to RunVirtual however the two limitations at this point are the need to globally publish and the inability to list applications under the process key in registry.
Are you able to launch applications or executables on the network drive using RunVirtual. I have a scenario where dependencies for a network app are sequenced however, the shortcut points to the network share \\Server\Share\test.exe /appve (GUIDS)
Does run virtual work explicitly with locally installed apps..? I tried launching from a batch file and mapped drive to no avail
Not sure what you mean? Can you explain in more detail what you are trying to achieve?