May 09, 2013 - 19 Comments - Virtual Vibes -

RunVirtual End to End

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.

published

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:

getadobe

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.

reader

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!

Enter RunVirtual

You will find the registry key here: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual

RVreg

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:

iexplore

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:

getdash

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

regGUID

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.

adobeembedded

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.

adobeapps

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.

dragonfly

dragonfly2

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.

19 Responses to RunVirtual End to End

  1. Thomas Rysgaard

    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.

    26 Apr 2014 - Reply
    • Thamim Karim

      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.

      26 Apr 2014 - Reply
  2. Victor

    Hi Guys, 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

    26 Apr 2014 - Reply
    • Thamim Karim

      Not sure what you mean? Can you explain in more detail what you are trying to achieve?

      26 Apr 2014 - Reply
  3. Arokiyaraj M

    Hi Thamim, Nice post, good to know lot of nice things in App-v 5.0. But I do have a small doubt in this. Say I have did this for FlashPlayer 10, and I able to open IE and access flash contents from the virtual package. But I do have some flash player files which can play only with 11.0 version and I have installed that version locally. will it automatically redirect IE to launch the flash content in 11.0 from the locally installed package. Or hence we have configured IE for virtual flash player 10.0 it will fail, If so how can we handle this situation. Thanks.

    26 Apr 2014 - Reply
    • Thamim Karim

      Hi, IE will still launch alongwith FlashPlayer 10. There is nothing in RunVirtual to detect the newer version locally rather IE will launch with what it can see. This would have to be managed with the deployment.

      26 Apr 2014 - Reply
  4. App-V 5.0 Ramp up Guide | VirtualVibes

    […] RunVirtual End to End | Blog […]

    5 Jun 2014 - Reply
  5. Sequencing a Shortcut in App-V 5.0 – Local and Virtual Interaction | VirtualVibes

    […] might be thinking RunVirtual or even the new integrations we have with App-V 5.0 SP2 has pretty much deprecated this technique, […]

    17 Nov 2014 - Reply
  6. RunVirtual comes to the user in App-V 5.0 SP3 | VirtualVibes

    […] has now been enhanced to allow user specific deliveries. If your not familiar with RunVirtual then read here first for a quick run […]

    4 Dec 2014 - Reply
  7. Raj

    I have my main application installed locally and then created App-V package for the Add-on.

    Here I would like to know the consequences and the outcome of the behaviour for the below scenario

    1) Installed my main application locally (not Appve’d)
    2) Installed App-V packaged Add-on (I am using RunVirtual key to launch the virtualized add-on from the locally installed application)

    If suppose I am installing the same add-on locally again (Not-appve’d). What would be the behaviour???

    19 Nov 2015 - Reply
    • Thamim Karim

      Hi Raj,

      The resultant behaviour would largely depend on how the add-on presents itself and how it is loaded by the parent application. The most probable behaviour would be that the parent application would launch inside the virtual environment, load the virtualised add-on and not see the local instances of file/reg for the locally installed add-on.

      23 Nov 2015 - Reply
  8. Victoria

    Hi! Thanks for a good article!
    But I have a question… What I need to do if I want to run local application inside virtual application?
    For excemple, I have Adobe Acrobat Pro (it’s virtual application), and I need to create .pdf file that will consist from two .docx files. Microsoft Office Word is local application.

    10 Feb 2016 - Reply
  9. Thamim Karim

    Hi Victoria,

    You can use the technique as explained above?

    26 Feb 2016 - Reply
  10. Anup

    Hi,
    What happens when 2 different packages need to use the Run virtual key for the same application?

    Briefing:
    Lets assume package AppV1 puts a runvirtual key in the location [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual\excel.exe]
    @=”aaabbbccc_dddeeefff”

    Now one more application puts a key i nthe same location for excel.
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\RunVirtual\excel.exe]
    @=”hhiijj_kkllmm”

    In this case, virtual key of the firts AppV package is lost.
    Please guide me how to handle this situation.

    Thanks for your help.

    1 Apr 2016 - Reply
  11. Suraj Malusate

    Hello Thamim

    I also have the same doubt as Anup has mentioned above hence could you please suggest the required workaround.
    I have 2 different virtualized packages which has their own excel add-ins and upon launching excel I want both of them to be published to the user.
    Using Run virtual key how we can achieve that ? I want something by just adding registry as above instead of connection group.

    Thanks.

    4 Apr 2016 - Reply
  12. Configuring RunVirtual Registry from the AppxManifest.xml -

    […] won’t discuss what RunVirtual is – you can read this if you need to […]

    23 May 2016 - Reply
  13. Using RunVirtual to Present Excel Addins -

    […] go into too much detail here since there’s a great blog about how RunVirtual works here and also a mention of an important update for App-V 5 SP3 here, which enables us to target packages […]

    15 Jun 2016 - Reply

Leave a Reply

Your email address will not be published. Required fields are marked *