Launching an external exe into a Connection Group using /appvve (Updated 5-sept-2013)
We know that it is possible to launch a external (non virtualized) executable inside a App-V 5 virtual environment by using the /appvve parameter and supplying the PackageID and VersionID of the sequence that you want to launch the executable into.
So what happens if the sequence that you want to launch the executable into is part of a Connection Group? Will the launched executable have access to the complete virtual environment of the connection group? Well the answer is a simple “Yes”.
So I started to wonder if is it possible to connect directly to the Connection Group instead of to a sequence that is part of the Connection Group. This may be very interesting in for example the following situation:
You want to supply users with a shortcut to Internet Explorer that has access to all of the virtualized plugins that are available to that user. In this case you don’t know which sequence to launch the iexplore.exe into, because the sequences available to the user may vary from user to user.
So what you want to do is connect directly to the connection group that contains all the plugin sequences available.
Today I found out that this is indeed possible by supplying the GroupID and VersionID of the Connection Group to the /appvve parameter instead of the PackageID and VersionID of a single sequence.
The command line to start will look like this:
“c:\Program Files (x86)\Internet Explorer\iexplore.exe” /appvve:[ConnectionGroupID]_[ConnectionGroupVersionID]
Off course this assumes that the sequenced plugins can coexist in the same Virtual Environment otherwise you will still have to have multiple IE shortcuts to the appropriate sequences.
The same could be used for various Office plugins or any other scenario you can think of in which you would want to launch a non-virtualized executable into a Connection Group.
For more information on launching a Network executable in a Virtual Environment please see the previous post of mine:
See this blog article for more information about /appvve: http://www.softgridblog.com/?p=185
– Update 5-sept-2013 –
Ok so I did a bit more research and the above example is still possible, but it is important to know that every time a connection group changes (a sequence is added or removed) the VersionID of that connection group changes (makes sense). So that means that when you have a shortcut to run a exe in a Connection Group, it will no longer work until you change the appvve parameter to include the new VersionID.
So the best option may (for production use) is not to launch directly into a connection Group and use the standard method of creating an empty sequence that has a shortcut to the required local exe included, and make that a member of the connection group and deploy is to the end user. This way when a Connection Group changes the shortcut can remain unchanged pointing to it’s own (unchanged) sequence which is part of the (changed) Connection Group and the exe is still able to see the complete contents of the Connection Group.
Another option (if the first is not wanted and you really need to launch directly into a connection group) may be to point your shortcut to the commandline version of the PowerShell script in this article and pass the executable to start and the Name or ConnectionGroupID to the script. The script will then figure out the correct VersionID (and ConnectionGroupID if the name was passed) and launch the executable in the Connection Group. This way the shortcut is independent of any membership changes on the Connection Group.
The downside is that it does not run completely silent, for a short moment a cmd-box is shown to the user. This is a Powershell “feature”.