Tag Archive: SCCM


Hello, my name is Patrick Mangan, and I have been sequencing with App-V. This year TMurgent added a sequencing service where we take on applications that customers are having a really hard time sequencing. Recently while working on one application that had a proprietary licensing scheme to work around I ran into another, unexpected error that I needed to troubleshoot.

After creating my package, I was able to deploy it to stand-alone clients and have them run it just fine, however when I tried to add it to SCCM as an App-V package, I receive a weird error.

Load Virtual Package Failed.

The message told me that there was a problem with some of the file icons, and SCCM would not let me complete importing the App-V package. The App-v sequencer automatically generates icon files for applications that have shortcuts or file associations.  It does this by extracting an icon resource from the executable file that would be run.  EXE and DLL files contain resource sections inside their PE format, which are normally used by the Windows Explorer to display the file.  The App-V sequencer will grab one from the file and save it as an ICO file.  This is needed at the App-V client to make the shortcuts and file associations “look right”, because the actual exe for the shortcut will be the App-V client launcher (and we don’t want all of those shortcuts looking the same).  So what was the problem with the icons and which one or ones were causing the SCCM error?

When I tried opening each of the icons from the App-V package up using the Windows Photo Viewer,  some of the icon files gave me a generic error message (shown below) that wasn’t helpful except to let me know which icons were a problem because they would generate this error.

Windows Photo Viewer cannot open this picture

These icons also could not list their details when I looked at their properties by right clicking on the file in the windows explorer.  Here are examples of a good and bad icon file.
Blank Details tab Details tab with details

App-V is known to have an issue with icons that are of rectangular (not square) dimensions, so this was my initial thought.  But rectangular icons wouldn’t have looked bad in Windows Photo Viewer so something else was going on.

To solve this problem, I opened the problematic files in Visual Studio. This gave me multiple types of information, including the image itself and version info. Deleting the extraneous information did not make the files work, but I was able to copy the graphics information and create a brand new ICO file with just the copied bitmap images. After replacing all the problematic files in this manner, I was able to create an App-V package in SCCM.

The problem appears to be that the icons for some of the obscure shortcuts were originally created by a 16-bit app, and those are not supported on the x64 systems we were using. I don’t know much about icons and the word bit has too many different meanings, so I can’t tell if these were 16-bit icons or not.  Certainly the executable behind the shortcut was not 16-bit, since it worked fine on the x64 OS.

So if you run into this error, replace out the icons!  You don’t need a fancy tool like Visual Studio.  There are lots of simple tools around that will let you draw your own icon from scratch.

sccmYou’d think it would be easier than this; that SCCM could at least keep it’s own clients up to date. No. So best I document this all in one place in case someone else runs into it.

Issue: Upgrade SCCCM 2007 to R3, and Create a package to install the App-V 4.6 (with or without SP1) client and get it to be properly installed. Create a virtual application package and try using it. The Virtual Application Packages fail claiming the App-V client isn’t installed.

Troubleshooting:

1) Looked at the VirtualApp.log file in the c:\Windows\system32\ccm\logs folder. Here I find the message:

“The installed AppVirtMgmt version [4.6] cannot be used with this version of SCCM.”

2) Checked the App-V Client install and configuration. Correct.

3) Checked the version of SCCM client installed on the machine.

4.0.6221.1000.

4) Double checked the version of SCCM on the server using the ConfigMgr Console (right click on Site server and select properties)

4.0.6487.2000

5) Checked the version of the SCCM client installer (ccmexec) on the SCCM server

4.0.6221.2000

6) Googled and determined that to support App-V 4.6 clients, SCCM needs to have KB977384 installed to upgrade the SCCM Client. This KB is not needed for SCCM in general, but is needed if you want to use App-V client 4.6 or above. There might also be a few other reasons to apply the KB, from what I’ve read.

The documented correct method to install the KB is to install the KB’s MSI file on the SCCM Site Server, which will extract the KB’s msp file and create a SCCM package to push it out to clients. Sounds good, right? Checking for this I see that indeed I had already installed the msi and the package exists, has been pushed to the DPs, and I already advertized it to those clients. So what gives?

Look for the msp log file on the client, none.

7) Manually locate the msp in the client sccm cache and run the program with arguments as specified in the created package. It fails, telling me that the program to be updated is missing or the wrong version.

Solution: This issue is that the SCCM system was upgraded multiple times. It seems that the 6221.1000 SCCM client is something less that the 2007 R2 with SP2 version (although I am unclear what version it is).

Using the ccmsetup.exe located in the site server Client folder, I log onto the client system and try to upgrade the SCCM client to the R2 version manually using the syntax posted in everyone’s posts I find on google:

ccmsetup /mp:[server] /logon /SMSSITECODE=[code] /FSP:[server]

substituting in the appropriate information whereever square brackets are shown above.

For me, this silently fails and the client is not upgraded. Why? Because the command has one of the STUPIDEST syntaxes you will see. Just what would you think "/logon" means? Maybe that it will need to logon to the server? NOOOOOOO! It means "if I already have a client installed, then don't do an upgrade, just quit silently".

I run the command without /logon, and after a while (it does the install without a GUI so you have to watch the task manager to know when it is done), the client has been upgraded to version 4.0.6487.2000.

Now I can run the KB977384 patch to the SCCM client. The client has been upgraded to version 4.0.6487.2157

And now my virtual applciation advertisements work.

Microsoft made Beta 2 of SCCM 2012 available last week. Because I do a lot with App-V, I needed to get this up and running in my lab. This is a “first look” report. SCCM 2012, which is anticipated to be released in the 4th quarter of 2011, is a major overhaul of the product.

I’m not much of an SCCM guy; I’m more of an App-V guy but I work with SCCM because the SP2 release of the 2007 version added support for deploying App-V applications. Looking from the perspective of customers that were using the App-V Management Server to deploy virtual applications, even if they were already using SCCM to deploy traditional installed applications, using SCCM 2007 SP2 to deploy virtual applications was a step back. Especially for all of the customers deploying App-V on Terminal Servers and Citrix XenApp/Presentation Server, the implementation was too limiting. Most important was the inability to target and deploy to only certain users on a machine, and not have all users receive access to the virtual application. For those considering Migrating for desktops, the difference in deployment time for a virtual application was also a show stopper, although this was truly an emotional issue rather than a practical one. So I opened up the 2012 beta and played with it will suspicion.

So far, I am impressed. One immediate change, SCCM 2012 will only work on an x64 OS, and it requires 2GB ram minimum. Now I know the old SCCM had high memory minimums, but this one means it. Being a lab test machine, my OS also included the Sql database on the same VM, but the machine pretty much uses the full 2GB ram. I have been running it on the new Hyper-V, which allows it to grab more memory as it needs to, but with only a few machines to be managed it peaked at nearly 3GB. So don’t skimp on RAM. Oh, and you need the new App-V 4.6 SP1 release to work with SCCM 2012. I’m guessing that Microsoft had to make a couple small changes in the App-V client to support this release.

The UI for 2012 has been revamped in this version. In the old version, there was always a lot of clutter to scroll through to find what you needed for an operation. And it seemed that for any operation you wanted to do, there were always two or three ways to do it. The new UI is more organized and much easier to use. Some of the terminology changes, but once you get the hang of it, it seems much easier. I won’t go into details, but here is a typical screen shot.

SCCM 2012 Beta 2 Management Console UI

SCCM 2012 Beta 2 Management Console UI

For me, most important in this release is that SCCM now treats User identities as first class citizens. Much like device (system) discovery, users and user groups can be discovered from Active Directory. As applications are defined, these applications can be assigned to either a user or device group. And while you could assign SCCM packages to users in the old version, with this new version when you assign to the user you have a choice of deploying to all users on the OS or only that specific user. In the screenshot below, we can see that the WinZip App-V package has been assigned to a user group collection. The compliance field has a value of 20% because only one of the five users in that AD User Group has his system turned on. SCCM will naturally learn from the Client SCCM client when someone logs onto a device, just like always. SCCM 2012 also supports associating users with devices in the database, so that user based deployments can happen overnight even if the user isn’t logged in (as long as the device is powered on and available).

SCCM 2012 Beta 2 Per User App-V Deployment

SCCM 2012 Beta 2 Per User App-V Deployment

I tested the per user deployment on a Windows 7 machine.  I can’t test against a terminal server because Microsoft still hasn’t released the required App-V 4.6 SP1 RDS client yet.  But with WinZip deployed to the user group above, I logged into the Windows 7 machine using the credentials of a user in that group and verified that the virtual WinZip package was deployed and worked.  I then logged out of the machine and back in as a different user that was not in the user group.  I verified that the virtual application was not available to that user.  Exactly what we wanted! 

The application itself can contain many means to deploy it, depending on the situation. So with a single application definition, you can include a deployment type for a traditional install and a second deployment type for an App-V deployment. In the example below, I have configured three different deployments.

SCCM 2012 Beta 2 Deployment Flexibility

SCCM 2012 Beta 2 Deployment Flexibility

If it is a Win7 operating system and the client has the App-V dependency installed, the first App-V package is used. If it is an XP system with App-V, then a second App-V package is used. If there is no App-V dependency on the system, then a traditional silent MSI install is used instead.

This creates a great amount of flexibility in this single application definition. In fact, although it is called an application in the UI, it really is more like a set of deployment rules. I could have easily added a deployment type to put WinRAR on the box instead of 7-Zip for some of these deployments (such as if 7-Zip didn’t work on terminal servers, for example). Or maybe an RDP/ICA file to launch a remote session application if the user is out of the office.

In addition to the per-user deployment issue of the old SCCM, another issue was that App-V packages typically include multiple application shortcuts and file associations. With the traditional App-V Management server, we could assign individual shortcuts of a package on a per-user basis. With the old SCCM, it was all the shortcuts or nothing. This also is improved in the SCCM 2012 version. Below is a screen from an App-V deployment type record of an application, where we can define which of the shortcuts should be published. We don’t have access to the file type associations, so we still need to be careful with these while sequencing.

SCCM 2012 Beta 2:  App-V Shortcut Selection

SCCM 2012 Beta 2: App-V Shortcut Selection

And, let’s talk speed. In our training classes, today we show an App-V deployment of a virtual application and updating it, but we don’t have time to wait for SCCM to test all of the sequenced applications. Over the course of three days, the average student will sequence and test at least a dozen different applications. Waiting for the SCCM agent to poll, messing with the control panel applet to beg it to poll, parsing the log files to figure out why it didn’t poll would take way too long. They might only get half as many apps completed. So we test those apps without SCCM. I still haven’t pushed out many apps, but so far this is looking much faster. It’s never going to be as fast – or provide the direct feedback of success – of testing using the App-V Management Server, or better yet the stand-alone App-V client using the AppV_DeployApp tool, but it isn’t bad!

There is a lot more one can talk about SCCM 2012. More about the UI, more about how the Database changes eliminate a lot of file copying and redundant processing to scale better. More about how you can define logic to detect the presense of applications and conditions that affect deployments, and logic to uninstall (why who would ever want to do that centrally?)  Also pre-deployment and mobile devices, and a smarter deployment server model, and a whole lot more. But I’m not an SCCM guy so you’ll want to read about that elsewhere.

From my perspective, if you are into this kind of thing, SCCM 2012 looks like a real winner to centrally management your application deployments.  Microsoft has indicated that it intends to move forward with App-V using both the App-V Management Server and SCCM deployment options for App-V customers.  Their intent is that the App-V Management Server, which is a no cost option (in terms of license cost for the App-V Management Server software, you still need an OS and Database Server) is the “good” while SCCM is the “better” option.  Until I started playing with this Beta, I didn’t think the reality would meet that intent.  It will take much more than this “first look” to determine if customers will want to deploy their App-V packages using SCCM 2012, but so far it looks promising.