The APPVVE argument in App-V 5

As already mentioned on blogs from other community contributors, the APPVVE argument introduced App-V 5 is a very useful mechanism to launch locally installed programs inside a virtual environment of a App-V 5 package without having to make any modifications to that package.

I believe there are two common use cases for the APPVVE argument. The first would be troubleshooting a Virtual Application, simply snooping around inside the virtual environment and see how the application is seeing things.

The second is a bit more specific but you are able to launch specific programs inside a Virtual Application Package, where for instance the “launching” executable is installed locally, but a required part of the application (or a completely other application) is virtualized using App-V 5.

Example:

  • You have sequenced a plugin for Internet Explorer that is required for a legacy internal web application.
  • Any “normal” launch of Internet Explorer on the clients will not use this plugin, obviously.
  • Now you need to retrieve the PackageID and VersionID from the virtual application package of this plugin. You can find this in the App-V Management Console or use the appropriate PowerShell commands.
  • Now create a shortcut to Internet Explorer appending the /APPVVE argument, PackageID and VersionID as in the example below (don’t forget the underscore):

IEXPLORE.EXE /appvve:a706366d-48cc-4983-80db-6d612951adce_35d5ea40-d940-46b4-a54c-3acc99252a3d

Important notes:

  • The appending of the /appvve argument to an executable obviously only works if the App-V 5 client is installed.
  • The /appvve:PackageID_VersionID argument will automatically be stripped from the launch and thus not passed to the launching executable.
  • However, if the PackageID_VersionID is incorrect or simply not available for the user/on the client, the argument is NOT stripped and IS passed to the launching executable, which in turn will have no idea what to do with that argument.
  • I was not able to find any Microsoft documentation about the /appvve argument, keep this in mind from a support perspective.

Other arguments:

In addition to the /appvve arguments there are two other arguments to get inside a virtual environment.

/appvpid is very useful to do some quick troubleshooting on a client. It does exactly the same as the /appvve argument, but it’s easier to use since it only requires you the specify the process ID (PID) of a process running in a Virtual Environment.

So launch a virtual application, check in task manager what the PID is, and then run any EXE appending the /appvpid argument as following (I’m pretending the PID is 2022):

REGEDIT.EXE /appvpid:2022

/appvrunningve is less useful and very specific. It does and is invoked exactly the same as the /appvve argument, but it will only run/work if the Virtual Environment of the corresponding PackageID_VersionID is already running. At the moment I don’t have any useful examples for you.