Monday, July 29, 2013

ConfigMgr 2012 SP1 with App-V 5.0 integration

Today I did some testing with App-V 5.0 integration in ConfigMgr 2012 SP1. Microsoft describes it this way in their whitepaper:
"Configuration Manager 2012 SP1 adds support of App-V 5.0 applications. App-V 5.0 provides benefits over traditional applications as it transforms applications into centrally managed, virtual services that are never installed and do not conflict with other applications. App-V dramatically accelerates application deployment, upgrades, patching, and retirement by eliminating time-consuming processes and simplifying the application management lifecycle."

And some other good lines also:
- Configuration Manager 2012 SP1 was designed to provide the same level application management features that are provided in the App-V 5.0 infrastructure;
- Configuration Manager 2012 offers a rich set of capabilities for managing virtual applications from the Configuration Manager infrastructure. Configuration Manager with App-V integration enhances the virtual application delivery model and provides features that are not available with an App-V full infrastructure model;
- App-V Integration with Configuration Manager is streamlined because Configuration Manager is performing the same tasks that are available with the full App-V infrastructure;
- Configuration Manager provides management of applications from delivery, update, and termination using the application catalog built-in wizards and configurations;
- SP1 for Configuration Manager 2012 reduces the App-V infrastructure to the App-V Sequencer and Client and takes the place of the management, publishing, and streaming components in a typical App-V full infrastructure;
 


Figure 1:Configuration Manager with App-V Infrastructure
When having an ConfigMgr installation, no changes are needed at all. You can import App-V packages as applications by default and deploy them to a collection. I created a user collection per App-V package myself, connected with a user group per collection. Deployment of applications is done on the same collection in this scenario. That way management (adding users to a group) can be done in Active Directory, no need to add users in the ConfigMgr console.
 
Here it comes, when deploy a required (mandatory) application to a desktop it will be installed within 5 - 30 seconds after logon. When deploying an application to a already logged on session, nothing is happening. A user policy refresh must be done first, or just logoff and logon again. After that installation is done in 5 - 30 seconds again. I tried both local download and streaming, but no big changes in them. When using local download (which takes longer) the application can be started immediately afterwards. When using streaming (which is way faster) the bits are downloaded when starting the application. I can live with it both ways!

App-V packages visible in Software Center (part of ConfigMgr)
When you want to uninstall an App-V package as application things are really different. Microsoft decided to remove the "Remove this virtual application when it is no longer advertised" option, which was used in ConfigMgr 2007 with App-V 4.6 integration. This was a great option, which removes the App-V package when it was no longer advertised. Much better that way!
 
Page 30 of the updated Configuration Manager White Paper (just click for download) discusses this:
To configure an application to automatically uninstall when a user / system is removed from the install collection, create a collection based on the deployment status of a deployed application then target an uninstall deployment to it.
 
This means you have to create two collections and deployments per App-V package now, one for installing and one for uninstalling the application. This will take a lot of time to create, as it is much more configuration then the option being used before. Microsoft mentions: The uninstall collection query listed only works for systems. The query must be modified when the install collection contains user objects.

User collections in ConfigMgr for installation and removal
I did it another way myself, creating two user collections per application. That way the Microsoft query mentioned is not needed, way to many clicks for me! Just create an Install and Uninstall collection and deployment per application. On the Install collection use a query connected to the specific user group used. On the Uninstall collection include the "All Users and User Groups" and exclude the specific user group used. Do this for all applications used.
 
When a user is removed from the specific user group in Active Directory, it will be synchronized in ConfigMgr within 10 - 15 minutes and installed or removed automatically. Collection membership is refreshed every 5 minutes by default and removal of the application when the "User Policy Retrieval & Evaluation Cycle" is done. 
 
My opinion for now: I'm not convinced of the functionality at the moment, but will keep testing if things get better with a different configuration. For it seems App-V 5.0 is actually slower then 4.6 with an App-V full infrastructure also, so more tuning is needed. It must be easier and faster to remove App-V packages in ConfigMgr to become more successful. Stay tuned for more!

19 comments:

  1. "For it seems App-V 5.0 is actually slower then 4.6 with an App-V full infrastructure also, so more tuning is needed." Apart from comparing appv 4.6 full infrastructure with appv 5 on SCCM, could you please explain and define 'slower'? Are you talking about removing apps using collections or application streaming performance?

    ReplyDelete
    Replies
    1. Not my personal experience but heard from colleagues. For it seems App-V 5.0 is actually slower then 4.6 indeed, this because the streaming protocol is switched to HTTP(S) and a lot of other functionality is changed. It's hard to compare 4.6 and 5.0 that way.

      Delete
  2. Any new updates to add since you wrote this article?

    Also, after the application is installed through software center, is AppV client needed to start the application?

    ReplyDelete
    Replies
    1. No new updates to mention at this time, maybe when R2 release become available.

      Yes, App-V client is not built-in by default in ConfigMgr. You can deploy the App-V client in the default set of applications, or create a dependency on the App-V package. Both will do.

      Delete
  3. Out of interest what uninstall string would you use to remove an app?

    ReplyDelete
    Replies
    1. On the Uninstall collection include the "All Users and User Groups" and exclude the specific user group used. Do this for all applications used.

      Delete
  4. But when you say "he specific user group used", it's Active Directory Group or Collection User group ?

    ReplyDelete
    Replies
    1. Sorry for misunderstanding, i meant "Collection User group", because that's the one which can be excluded! Will post a screenshot on this later.

      Delete
  5. We tried this in our environment; we created for each application two User Based Collections (App_Install and App_Uninstall), made a AD group the only member of the App_Install collection (SCCM_App_Install) and made everyone member of the App_Uninstall with an exclusion for the SCCM_App_Install AD Group.

    Although it sounds like this should be working well; it doesn't. The Uninstall group will contain everyone from the domain, except that Install group. So when UserA will is member of SCCM_App_Install, the user object itself will still be a member of the Uninstall collection, although the SCCM_App_Install group is not.

    ReplyDelete
    Replies
    1. Strange indeed. Did you install Cumulative Update 1 already? This because there was an issue where App-V couldn't be uninstalled. Just have a look at http://henkhoogendoorn.blogspot.nl/2014/03/cumulative-update-1-for-configmgr-2012.html for more information.

      Delete
  6. We also tried this in our environment. But no application is uninstalled. We use SCCM 2012 R2 so maybe this could be the problem.
    Any update on the above mentioned article?

    ReplyDelete
    Replies
    1. Did you install Cumulative Update 1 as minimum (newer is better), because the following hotfix is added: With App-V 5.0 SP2, App-V packages that are being used cannot be uninstalled

      Delete
  7. I just tried as you wrote in the above article but the application is not uninstalled. We have SCCM 2012 R2 so maybe this has changed. IS there any update on the above article.

    ReplyDelete
    Replies
    1. Did you install Cumulative Update 1 as minimum (newer is better), because the following hotfix is added: With App-V 5.0 SP2, App-V packages that are being used cannot be uninstalled.

      Delete
  8. I just stumbled across this post as was wondering if in large environments with lots of applications you don't find that users end up with lots of uninstall deployments sent to them for applications they don't have?

    Would it not be better to only deploy the uninstall deployment to users with the application installed rather than everyone except who have it installed?

    Thanks,

    ReplyDelete
    Replies
    1. Both can be possible I guess. Depends on the number of applications and deployments used.

      Delete
  9. I did an uninstall deployment of an AppV5 application. Software center notified me about the successful uninstall and the software no longer appears in software center. However I immediately noticed the application was still visible in the Start Menu. I did get-appvclientpackage in powershell... the software was still in the list. I did remove-appvclientpackage with the name... and it was successfully removed. AppEnforce.log has no mention of a failed uninstall or anything being wrong. I fear the future.

    ReplyDelete
    Replies
    1. Yes, did see that behavior earlier too! Not what you want if you ask me :(

      Delete
  10. Howdy are using Wordpress for your site platform?

    I'm new to the blog world but I'm trying to get started and set up my own. Do you need any html coding expertise to make your own blog?
    Any help would be really appreciated!

    ReplyDelete