Managing App-V 5 Connection Groups using SCCM 2012 SP1 (Updated 5-sept-2013)


In this article I will try to explain how SCCM 2012 can be used to manage App-V 5 Connection Groups, and what the differences are between managing them with SCCM and managing them from a App-V 5 Full Infrastructure management server.
App-V 5 Connection Groups are managed from SCCM through what are called Virtual Environments. Virtual Environments define how the Connection Groups are created on the clients. So why Microsoft decided to call them Virtual Environments in SCCM is not really clear to me. Possibly because a SCCM Virtual Environment is not (necessarily) a one on one representation of the actual Connection Group created on the client, but I find it unnecessarily confusing.

In this article I will only use the term Virtual Environment (VE) when discussing the configuration in the SCCM console. In other cases (referring to the client and or to the full infrastructure management server) I will use the term Connection Group.

Using SCCM to manage Connection Groups has both advantages and disadvantages.
The biggest advantage I find is that with SCCM you can configure Virtual Environments (VEs) using ‘AND’ and ‘OR’ operators, this allows you to create more flexible Connection Groups (The existence of a Connection Group and which applications are members is determined by the Virtual Environment and the actual applications published to the target.) compared to a full infrastructure where all sequences that are a member of a Connection Group are available to the target regardless of whether or not the separate sequences have been published to the target.
This biggest disadvantage is that you can’t manage connection group priority from SCCM. This will lead to problems when a sequence is a member of two VEs and both result in a Connection Group on the client. I think this is a big oversight from Microsoft as it could easily haven build into the SCCM Console. Hopefully Microsoft will add this to the R2 release of SCCM 2012.  Unfortunately I haven’t had time to check out the R2 pre-release yet.
The default Priority of an Connection Group created by SCCM is set to a very high number (4294967295) as apposed to a Full Infrastructure Connection Group which uses 0 by default. This is probably to avoid conflicts if you use a combination of both. The SCCM connection group will then take precedence.
Check out this TechNet Blog for more info on Connection Group Conflicts and Priorities.

Below are some examples that may help to understand how Connection Groups can be managed using de Virtual Environments in SCCM 2012 SP1

Configuring a Virtual Environment using the ‘OR’ operator

In this example we will create a Virtual Environment containing both Adobe Flashplayer and Google Toolbar that will result in a Connection Group if either or both App-V 5 sequences have been published at the client.

  1. In the SCCM 2012 management console go to Software Library -> Application management -> App-V Virtual Environments.
    Then click Create Virtual Environment.
    SCCMVirtEnv1
  2. Enter the name of the Virtual Environment and optionally a description. The name entered here will also be used as the name of the Connection Group on the client.
    Then click Add.
    SCCMVirtEnv11
  3. Enter a group Name. This will be the ‘OR’ group that contains applications of which at least one needs to be published to the client for the Connections Group to be created.
    Then click Add.
    SCCMVirtEnv12
  4. Select the application and Deployment Type that you want to add to the group.
    In this example we will select Adobe Flash Player and its only App-V 5 deployment type.
    Then click OK.
    SCCMVirtEnv13
  5. The application has been added to the group. You can now add as many other applications as you need in the same way as described above.
    In this example we will add the Google Toolbar.
    SCCMVirtEnv14
  6. The Google Toolbar has been added to the group.
    You can now change the order of the applications in the group. In case of file or registry conflicts between the applications the one with the highest order (closest to the top of the list) will take precedence.
    Click OK to confirm the creation of the ‘OR’ group
    SCCMVirtEnv16
  7. The ‘OR’ group has been created and the result can be seen in the below screenshot.
    Click OK to confirm the creation of the Virtual Environment.
    SCCMVirtEnv17

Configuring a Virtual Environment using the ‘AND’ operator

In this example we will create a virtual Environment containing both FileZilla FTP client and Mozilla Firefox that will result in a Connection Group only if both App-V 5 sequences have been published at the client.
This example assumes you’ve already read the above example, so it’s a bit more compacted.

  1. Click Create Virtual Environment.
  2. Enter the name of the Virtual Environment and optionally a description.
    Then Click Add.
    SCCMVirtEnv2
  3. Enter a group name. Since we are now creating a Virtual Environment using only the ‘AND’ operator we will only be adding one application to the group.
    In this case we will add FileZilla FTP client. To add it click Add and follow the steps described in the previous example selecting FileZilla.
    SCCMVirtEnv3
  4. FileZilla has been added to the group. Click OK.
    SCCMVirtEnv5
  5. FileZilla has been added to the Virtual Environment.
    Now click Add and repeat steps 3 and 4 to add Mozilla FireFox to the Virtual Environment.
    SCCMVirtEnv6
  6. Once Mozilla FireFox has been added you will end up with a Virtual Environment looking like the screenshot below.
    You can now change the order of the applications in the Virtual Environment.
    Click OK to confirm the creation of the Virtual Environment.
    SCCMVirtEnv101

Configuring a virtual environment using both the AND and OR operators

Now that we know how to create Virtual Environments with ‘AND’ and ‘OR’ operators we can also create combinations of both.
Below are a few examples.

  1. In this example the Connection group on the client will be created when FileZilla FTP Client and either of both or the Internet Explorer Plugins have been published on the client.
    SCCMVirtEnv18
  2. In this example the Connection Group on the client will be created when FileZilla FTP Client and Mozilla Firefox and either or both of the Internet Explorer Plugins have been published on the client.
    SCCMVirtEnv20
  3. In this example the Connection group on the client will be created when either FileZilla FTP Client, Mozilla Firefox or Both and either or both of the Internet Explorer Plugins have been published on the client.
    SCCMVirtEnv19

Use Case: Combining with local applications

Managing Connection Groups with SCCM is really great for when you want to add plugins to locally installed applications and you don’t want all users to have all plugins, for instance for adding Plugins to Internet Explorer. See my example about Configuring a Virtual Environment using the ‘OR’ operator. Here two IE plugins have been added to the Virtual Environment. Either plugin can be deployed to different users and for each the Connection group will be created. To use the plugin in Internet Explorer you can supply each user with a shortcut to IE with the APPVVE parameter pointing to the Connection Group This way you don’t have to know which Plugin a user is using to supply the right IE shortcut.  You will only need one IE shortcut for all plugins instead of one for every plugin, and instead of numerous Connection Groups for each possible configuration of plugins (as I would need with a full infrastructure) you only need one Connection Group. Off course if you have conflicting plugins (i.e. different versions of the same plugin) you still need to offer them separately.

– Update 5-sept-2013 –

After a bit more research I found that using a shortcut to point directly to a Connection group is not a good idea. Because with SCCM the Connection Group GroupID and VersionID of the Connection group are not maintained at the server, meaning that they are unique at every client. On top of that any change to the membership of the Connection Group leads to a new VersionID. The right option is to create a separate (empty) sequence containing the shortcut to the local application, add it to the Connection Group and deploy it to all users of the application. This is still a great advantage over a full infrastructure because you can have different members of a Connection Group for different users/computers except that you’ll need an extra sequence for the shortcut to the local application which you will need to deploy to all users of the application.
Also see this updated article of mine about launching a local application in a Connection Group.

Connection Group Overview: Full infrastructure compared to SCCM

Full infrastructure SCCM
Connection Groups have to be explicitly published to a target. Only the App-V application sequences have to be distributed to a target. Connection groups are automatically created if a Virtual Environment (VE) is applicable.
All App-V sequences in a connection group are available on the target that the connection group has been published to regardless of whether or not the separate sequences have been published to the target. The ability to create ‘AND’ and ‘OR’ VE’s. In the case of an ‘AND’ VE the connection group will be created only when all sequences in the connection group have been distributed to the target. In the case of an ‘OR’ VE the connection group will be created with only the sequences that have been distributed to the target.
Connection group priority can be set at the server console.(Although this does not work with App-V 5 Sp1 due to a bug. This bug has been fixed in Hotfix 1 for App-V 5.0 SP1 Management Server) There is no method to manage connection group priority. You will have to prevent conflicts from occurring by making sure that one sequence will not be a member of more than one connection group on the same client, through managing your distributions.
Connection groups can be disabled (unpublished) from the console. Connection groups cannot be disabled only removed by removing the VE in SCCM.
Connection Group GroupID and VersionID are generated at the server and passed down to every client. Connection Group GroupID and VersionID are generated at the client (unique at every client).
Advertisements

Tags: , , , , , , , ,

About Casper van der kooij

Technical Lead Application Packaging @ Conclusion Future Infrastructure Technologies, Utrecht, The Netherlands.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: