Tuesday, February 19, 2013

SCCM and App-V 5.0 integration

App-V 5.0 is getting more and more popular, but we are still suffering from lack of documentation regarding various aspects of its implementation. This was by the way one of the points everybody agreed on during the European App-V User Group 2013 event.
I've spent some time figuring out how App-V 5.0 integrates with Microsoft System Center Configuration Manager.

Because i've dedicated some time on it i'd like to share (some of) me findings to fill the information gap hoping that it'll save valuable time of people who've already spent their time reading this post ;)


Some general information about App-V 5.0 implementation scenarios can be found in this MS article. According to that article we've got 5 common implementation scenarios:
  1. App-V v5 Full Infrastructure
  2. App-V v5 & Configuration Manager 2012 SP1 Integration
  3. Deploy through a ESD using Windows Installer (.MSI) or Windows Powershell
  4. App-V v5 Standalone Client Domain
  5. App-V v5 Standalone Client Workgroup

When you've got an older SCCM version or any other Electronic Software Distribution System (others call them PC Life-cycle Management system etc) like Altiris, Landesk, KACE, Tivoli and anything else you can easily deploy your App-V 5 sequences using generated MSI or throug Powershell cmdlets.

If you want to fully integrate App-V 5 into your SCCM infrastructure you can do it only when using SCCM 2012 SP1 and higher.

 


Microsoft has recently published white-paper  Managing_AppV5_with_Configuration_Manager_2012SP1.pdf . This white-paper is  must read if you are going to implement the integrated infrastructure and it covers almost all aspects of integrating App-V 5.0 with SCCM 2012 SP1.
So, what's so interesting about App-V 5 and SCCM 2012 SP1 integration, we'd like to spend our time to? To be honest, if you've got proper understanding of App-V 5 and SCCM 2012 and if you've carefully read Planning for App-V Integration with Configuration Manager in addition to the white-paper mentioned above then you are good to go...

But what about App-V 5 full infra and SCCM 2012 SP1 integration coexistence?

 

According to Migrating from an App-V Infrastructure to a Configuration Manager and App-V Infrastructure:
"Configuration Manager begins to manage virtual applications on a client after the first deployment of a virtual application. After this, all App-V applications on the computer must be managed by Configuration Manager." This is exactly the same as when integrating SCCM 2012 and App-V 4.6. One of the statements that i could find here and there is that there is no hybrid model possible, SCCM client will take control over App-V client.

Let's take a look at what will really happen ;)

we've got four applications published through App-V server:



7zip and Foxit Reader are configured for BUILTIN\Users (all AD users) and Firefox and Wordviewer have no users or groups configured in AD Access yet.

our test system has App-V 5.0 and SCCM 2012 SP1 clients installed.
one publishing server is set through GPO using ADMX from here, another publishing server is set using Add-AppvPublishingServer.
Get-AppvPublishingServer shows both publishing server.





the registry looks as expected:


There is one management server defined in the App-V client registry and PackageURI's are pointing to UNC path containing package sources

when we'll look in App-V client GUI



We'll see exactly what we would expect...

we've got Firefox deployed to users through SCCM 2012 SP1


Let's roll .........

After installing Firefox from Application Catalog we'll see the following...


App-V 5.0 client registry


as we can see there is one more package added and PackageURI of the new package points to ConfigMgr DP, and the previously existed packages are unchanged.
There are no more publishing servers defined in Publishing\Servers, SCCM client has removed it from the App-V client registry!
but if we use powershell cmdlet to get the list of publishing servers ...



we still have publishing server configured through GPO

The App-V 5.0 client shows three apps:



and we can start each of those apps and see that they are working




Now let's take a look at what will happen when we configure AD Access on App-V server for WordViewer...
after some patient waiting it simply appears in App-V client GUI :O



We've received WordViewer which was published through App-V 5.0 full infra, after we've deployed an App-V 5.0 application throug SCCM 2012 SP1

And yes, we still can run them all!!!




Now lets remove publishing server from GPO and see what will happen when we'll import a new application into App-V management server and try to publish it.



publishing server is gone...
Update button in App-V client is grayed out...
and we can wait for ages, but no new application will be added.

But...
as soon as we put back the GPO that configures publishing server, we've got the newly added application ready to use in addition to all the apps we've already had available.



A side note with findings from the VirtualApp.log
When an application is started that wasn't deployed through SCCM we can see messages like this:
GetContentLocation() is called for the AppV package 4B489FAC-9879-4D57-97A7-86E745939BE2 version GUID 4AD8A1ED-37EB-48CD-B2E5-F953EA29EE8E
The AppV package 4B489FAC-9879-4D57-97A7-86E745939BE2 version GUID 4AD8A1ED-37EB-48CD-B2E5-F953EA29EE8E is not deployed by ConfigMgr V5 yet. We will not set streaming DP for it. Ignore this request
These are only informational messages, there are no errors or warnings regarding settings configured through GPO (think about what messing with GPO settings for WSUS will do with your updates deployment through SCCM :D)


Wel, what can we conclude from this quite long story?

Running App-V 5.0 full infrastructure and SCCM 2012 SP1 with App-V 5.0 integration side-by-side / hybrid (or whatever you can call it) is possible.

There are currently no official Microsoft statements regarding support for such configurations.

Whether or not you can or should use it depends completely on your environment.

Friday, January 25, 2013

Deploying SCCM 2012 cumulative update client patch through task sequence

When you install a cumulative update for SCCM 2012 it'll automatically create update packages. You can see those packages on the picture below.




CU is installed and you think "how easy can it be" and try to deploy this patch in your task sequence to address known issues and get your clients to the current patch level. Unfortunately when you add the package containing client hotfix to the task sequence and try to run it it'll fail. The reason it is failing is simple - during installation of client hotfix the SCCM client is being reset and during TS it can't be correctly handled.
To install the client hotfix during Task Sequence men have to follow the same way as when installing client hotfixes for SCCM 2007. So you simply have to use PATH option in your "Setup Windows and ConfigMgr" step.


The PATH line will look like



PATCH="%_SMSTSMDataPath%\OSD\%PACKAGE_ID%\i386\hotfix\cu2.msp"
Where  %PACKAGE_ID% is SCCM Package ID of the "Configuration Manager Client Package"

There is one small thing that should be fixed before this is actually going to work ...
When installing a hotfix for SCCM 2007, the client patches were automatically written to
%SCCM INSTALL DIR%\client\%ARCH%\hotfix\KB_NR\... and the only thing men had to do was update client install package and specify necessary KB in the PATH.
In SCCM 2012 hotfixes are no longer written to that path, but to %SCCM INSTALL DIR%\hotfix\KB_NR\...
To make the above story work we need to create subfolder hotfix under %SCCM INSTALL DIR%\client\%ARCH%\ and copy the corresponding client MSP's to there... and this is it (DO NOT FORGET TO UPDATE CLIENT INSTALL PACKAGE)




Tuesday, January 15, 2013

Microsoft System Center 2012 Service Pack 1 has been released for General Availability.

it's time to start thinking about deploying it into your production environment ;)

http://blogs.technet.com/b/systemcenter/archive/2013/01/15/system-center-2012-sp1-is-generally-available.aspx

Deploying Windows Server 2003 with SCCM 2012

There is a lot of information written about deploying various operating systems using task sequences through SCCM 2007 and SCCM 2012 and i'm not going to describe it here.
The point that i want to address is about deploying Windows Server 2003 using SCCM 2012.
When you would like to deploy Server 2003 using "Operating System Installer"(aka "Original Installation Source"), at the first sight it will look like it is working out-of-the-box (assuming that you've configured your SCCM 2012 for OSD, imported the necessary drivers etc), but... after OS installation file have been downloaded, Apply Drivers step has been completed, SCCM client was downloaded...... then your system went through Windows setup, and then finally it starts OS and goes to install SCCM client by executing "Setup Windows and Configuration Manager" TS step...............................................

The TS progress bar flashed quiet fast, system reboots and this is it.

NO TS error message
NO more status messages in deployment status
THERE is not even a SMSTS.log on the system...
.................... searching for solution ...................
the only thought you've got left after trying to resolve this issue for hours is WTF!

Symptom(s):
Well, lets look on it again  with a fresh look.
The only usable logfile we've got on the system is %WINDIR%\ccmsetup\ccmsetup.log. It ends up with
<![LOG[CcmSetup failed with error code 0x80004005]LOG]!>
Unfortunately everybody, who's been using SCCM for some time, knows that in most cases this message (alone ;) ) doesn't mean anything :(
Luckily for us there is another entry in the log file

<![LOG[This operating system does not contain the correct version of BITS. BITS 2.5 or later is required.]LOG]!>
And this is our clue!

Why?
As stated in Prerequisites for Windows Client Deployment in Configuration Manager:
"Microsoft Background Intelligent Transfer Service (BITS) is required to allow throttled data transfers between the client computer and System Center 2012 Configuration Manager site systems. BITS is not automatically downloaded during client installation."
and in "Important note" just below it:
Most operating systems include BITS, but if they do not (for example, Windows Server 2003 R2 SP2), you must install BITS before you install the System Center 2012 Configuration Manager client.

Resolution:
SCCM 2012 client install doesn't include BITS any more. To be able to install SCCM 2012 client on Server 2003 system you must deploy Background Intelligent Transfer Service (BITS) 2.5 (KB923845) prior to deploying client on the target systems.
When deploying client to live systems, you can use different ways to achieve this, but what to do if you want to deploy Windows 2003 through SCCM OSD???
Well, the answer is quiet simple:
You must slipstream KB923845 into your Windows Server 2003 source!

P.S. If you haven't been using Windows 2003 and forgot how to slipstream a hotfix into your OS distribution, we still can find this info here - How to integrate software updates into your Windows installation source files.