App-V: To publish globally or not

For several reasons, the current deployment of App-V 5 in which I work does not utilize the App-V management server or SCCM. Instead we use some in-house scripting and a desktop composer to deliver our applications to end-users. We’ve been using App-V 5 for a little over a year now and one of first questions we had was- Do we publish applications globally on the server? At the time it didn’t seem like a bad idea, but on a shared server… it can be.

When you globally publish an application to a shared server, say an RDS server shared between 20 other users, the application shows up in ways you may not want. For example, if you sequence an application that has context menus, it will show up for all users. The applications show up in the ‘Open with’ dialog as well. If you sequence Notepad++ or another application, this may not be such a bad thing. To add an App-V package to a server and publish it all users, run the following command:

Add-AppvClientPackage -path \\path_to_your\app-v\package.appv | Publish-AppvClientPackage -Global

In my case, you usually don’t want to expose all applications to users on a server. You can add an App-V package to a server without actually publishing it globally to all users. To do this, run the following command to add your package:

add-appvclientpackage -path \\path_to_your\app-v\package.appv

This command essentially makes that application available to users logging into that server without giving them access to it. To give a user access, publish that application to the appropriate user(s) by running this command as each user:

publish-appvclientpackage -name “App-V Package Name”

You can also use the -PackageID & -VersionID parameters, but I prefer using the name because it’s a lot more descriptive than a randomly generated GUID. This command can be run at logon via logon script or any other preferred method as long as it is run in the user context. Running this command still gives the user all the appropriate FTAs, shell extensions, open-with options, etc. While the other users are none the wiser.

When publishing applications to your users, remember the following:

  • Global Publishing will apply to all users.
  • Adding the package without the global tag will not apply to any users until you run the publish command as the user.


Whether you decide to global or not, remember the ramifications of both. You may wish to apply a package only to certain users while all users may get another.