One of the most anticipated features of SCCM 2007 R2 is “App-V Integration”. We have recently tested the end-to-end scenario for this integration and we can say with confidence: it BLOWS :-( . In a nutshell, by integrating App-V with SCCM you lose App-V’s best features and reduce the solution to something that’s even worse than SCCM by itself!

So what happens when you enable the App-V/SCCM integration feature in the SCCM Management Console?

  • Control of the App-V client is seized by the SCCM client. If you had App-V running on its own before you enabled the integration, you’ll notice that all App-V apps that are published through App-V’s Publishing Server are now rendered invalid. On launch you’ll get a “Unable to initialize package information (0×00000000)” error.
  • You must now publish your App-V apps through SCCM as “Virtual Application Packages”. This works by importing the .XML file of the App-V package. SCCM will distribute the packages to its Distribution Points and you can enable those Distribution Points for HTTP(S) streaming.
  • To get the App-V apps to your clients, you’ll have to create SCCM advertisements. Basically SCCM advertisements replace the App-V Publishing Server. The behavior of getting App-V apps to your desktop now becomes eerily similar to SCCM’s way of installing applications. No more getting your shortcuts immediately upon logon (like you get with App-V); you will have to go get a cup of coffee and hope that SCCM is willing to give you your apps today.
  • If you created non-mandatory assignments, then you’ll have to go to Add/Remove Programs yourself and click “Run” for all the apps that you want. However clicking “Run” doesn’t actually run your app, it only registers the App-V app with the local App-V client. Don’t expect to see any progress bar or visual feedback that the registration actually happened; just keep scouring around in your Start Menu in hope of finding the shortcuts for your new app.
  • If you created mandatory assignments, you’ll get one or more notifications from SCCM (after some time ofcourse) that SCCM has App-V apps for you that it would like to register with the local App-V client. It will do that on *every* desktop you logon to. Prepare to spend quite a bit of quality time with the SCCM Client…
  • If you’re using either Windows Terminal Services or Fast User Switching in Vista, you’re SOL because the SCCM Client is allergic to terminal sessions. You’ll get a message telling you that “No programs are available to run from a Terminal Services session”. How nice. If you happen to be running the console session, you won’t notice this limitation because at the console session, everything works just fine. So make sure you also test your solution via a terminal session so you won’t get caught by surprise.

 

As a result of the findings described above, we were pretty disappointed with the solution and decided to reverse our decision to integrate App-V with SCCM. However we did like the idea of using SCCM Distribution Points to stream App-V apps from. So we had a go at doing a manual integration of App-V with SCCM so that we could use just the SCCM parts we wanted. The idea was inspired by Tim Mangan’s article which included this diagram:

 

In his article he never got around to actually testing if it was possible to stream an application that was published by App-V’s Publishing Server from an SCCM Distribution Point. He only verified that is was possible to install the App-V app through an MSI with SCCM. So we ventured to get HTTP streaming working against SCCM Distribution Points, with the shortcuts still being provided by an App-V Publishing Server. In a nutshell: it works! You do have to setup a few mechanisms to get load balancing working though.

Here is how it works:

  • First and foremost: disable the App-V integration with SCCM. To do this, go to the SCCM Console -> Site Database -> Site Management -> <Site> -> Site Settings -> Client Agents -> Advertised Programs Client Agent -> Properties and make sure “Allow virtual application package advertisement” is NOT selected.
  • Enable your SCCM Distribution Points for BITS, HTTP and HTTPS content transfer. To do this, go to the SCCM Console -> Site Database -> Site Management -> <Site> -> Site Settings -> Site Systems -> <your DP> -> ConfigMgr distribution point -> Properties and select “Allow clients to transfer content from this distribution point using BITS, HTTP and HTTPS”.
  • We found that (at least in the RTM version of SCCM 2007 R2) you don’t have to enable “virtual application streaming” on the “Virtual Applications” tab of the distribution point to be able to stream from a SCCM DP when using our manual integration. The added benefit of this is that you can now also use Secondary Site DP’s as streaming servers!
  • Set up an App-V Management Server on any server you like. You can even set it up on a SCCM server, it doesn’t matter. Use the default installation settings for the entire installation. After installation, set the Default Content Path to the following: http://%SFT_SOFTGRIDSERVER%
  • Add an App-V package to SCCM for distribution and streaming:
    • Go to the SCCM Console -> Site Database -> Computer Management -> Software Distribution -> Packages -> New -> Package. Enter the information about your package and click Next. Select “This package contains source files” and set the Source Directory to the location of your App-V package and click Finish. Note that you import the App-V package as a normal SCCM package and NOT as a Virtual Application Package. Importing it as a Virtual Application Package will cause the .SFT file in the App-V package to be renamed and cause the .SFT file to be added to not 1 but 2 locations on each SCCM Distribution Point, doubling storage requirements.
    • When the package is added to SCCM, find the Package ID and use it to update the streaming location in the App-V OSD files. For each OSD file in your App-V package, update the HREF statement to HTTP://%SFT_SOFTGRIDSERVER%/SMS_DP$/SMSPKG/<your SCCM Package ID>/<name of your SFT file>
      (If you are using a File Share Distribution Point, the IIS vdir may be different than SMS_DP$. Verify the vdir name in IIS Manager and ensure that all DP’s are either standard DP’s or File Share DP’s.)
    • Now add some SCCM Distribution Points to your package so that SCCM can distribute the App-V content
  • Import the same App-V package into the App-V Management Server so that you can distribute the shortcuts and set permissions:
    • On the App-V Management Server, go to the App-V Management Console, go to Applications
      -> Import Application and go to the same App-V package folder. Select the .SPRJ file and click Open. Perform your regular App-V import steps and finish the import.
    • The imported applications in the App-V Management Console should now show the correct http:// paths to both the OSD file(s) and the SFT file(s).
  • That’s it! Now just configure your App-V Clients on the desktops to use your newly setup App-V Management Server by configuring a Publishing Server and use Group Policy to set the %SFT_SOFTGRIDSERVER% to the name of a SCCM Distribution Point nearby. We set this variable to DNS name that uses DNS Round Robin to distribute the load to multiple DP’s.
Bookmark and Share
14 Responses to “How to integrate App-V with SCCM without losing the features you care about”
  1. Rob West says:

    Kevin -

    Great article. Thanks for this. Good to see you guys blogging on so many interesting topics! Keep in touch.

    Rob West

  2. Amin Kollie says:

    You know, you can save youself a lot of trouble and set an App-V Management Server to publish the application and an IIS server to stream it (over http). No ConfigMan required. It’s the App-V client that supports HTTP.

  3. Man says:

    Does the App-V management server need to be a stand alone server if the SCCM integration is turned on or can App-V live on the same server as SCCM?

  4. Brad says:

    What about SCCM reporting? Installing the virtual app with an MSI registers the app in add/remove programs but does that also give you the individual app usage data that a fully integrated solution would give you? Or are you losing that with your proposed hybrid solution?

  5. DaveM says:

    You can turn off Mandatory Reminders in the Advertisement Properties under the Interaction Tab.

  6. Ziano says:

    you don’t loose the inventory and reporting features….even if the application is virtual.

  7. paul says:

    Hi Kevin,

    This was very intersting topic. We tried to replicate the same soluiton in our lab. But somehow we are not successful in implementig the solution. Please can you breif us further about this solution.

    Thanks
    Paul

  8. pisboi says:

    We had similar thought on this topic (the App-V/ConfigMgr integration has many downsides). But we used another approach (still using the ConfigMgr DP servers). In simple terms: Create a Content-share on the DP servers, use DFS to replicate them all, create a virtual IIS directory on each DP server pointing to the Content-directory, and specify HTTP instead of RTSP when you sequence the application.

    This way you don’t have to edit the OSD files to include SMS package ID, you don’t need any App-V Management/Streaming software installed on the servers, and your App-V infrastructure is a bit simpler when not involving ConfigMgr.

    All servernames use DNS alias, so if a serverer should be unavailable/under maintenance we can just change the alias in DNS to point towards another server.

  9. pisboi says:

    We had similar thought on this topic (the App-V/ConfigMgr integration has many downsides). But we used another approach (still using the ConfigMgr DP servers). In simple terms: Create a Content-share on the DP servers, use DFS to replicate them all, create a virtual IIS directory on each DP server pointing to the Content-directory, and specify HTTP instead of RTSP when you sequence the application.

    This way you don\’t have to edit the OSD files to include SMS package ID, you don\’t need any App-V Management/Streaming software installed on the servers, and your App-V infrastructure is a bit simpler when not involving ConfigMgr.

    All servernames use DNS alias, so if a serverer should be unavailable/under maintenance we can just change the alias in DNS to point towards another server.

  10. pisboi says:

    We had similar thought on this topic (the App-V/ConfigMgr integration has many downsides). But we used another approach (still using the ConfigMgr DP servers). In simple terms: Create a Content-share on the DP servers, use DFS to replicate them all, create a virtual IIS directory on each DP server pointing to the Content-directory, and specify HTTP instead of RTSP when you sequence the application.

    This way you don\\\’t have to edit the OSD files to include SMS package ID, you don\\\’t need any App-V Management/Streaming software installed on the servers, and your App-V infrastructure is a bit simpler when not involving ConfigMgr.

    All servernames use DNS alias, so if a serverer should be unavailable/under maintenance we can just change the alias in DNS to point towards another server.

  11. This is great. Really nice post. Very Informative and helpful post.

  12. Alex says:

    Excellent Post, many thanks !

  13. schlingel says:

    Hello,
    Great Job, but i am sorry i think you dint understand the sccm funktionality, in the past we call the SCCM als SMS that means Slow Moving Software. Today we have the same Problem within an other Name :-) this by the way

    use to publish the App-V SW faster, on the client in the ConfigMgr Agent in the register Action the section Machine Policy Retrivial &…. and then push “intiate Action” so you have an PolicyUpdate over the SCCM MP and you have youre Virtual SW faster :-) have fun….

  14. schlingel says:

    Hello,
    Great Job, but i am sorry i think you dint understand the sccm funktionality, in the past we call the SCCM als SMS that means Slow Moving Software. Today we have the same Problem within an other Name :-) this by the way

    use to publish the App-V SW faster, on the client in the ConfigMgr Agent in the register Action the section Machine Policy Retrivial &…. and then push \

  15.  
Leave a Reply

This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)

You must read and type the 5 chars within 0..9 and A..F, and submit the form.

  

Oh no, I cannot read this. Please, generate a