Step-By-Step: Managing Multiple Versions of the Same Application via System Center Configuration Manager

In System Center Configuration Manager 2007 (SCCM 2007) collections were used to determine any installation prerequisites. If different architecture versions of the same application needed to be distributed, two separate collections would need to be maintained as targets for the advertisements.

System Center 2012 Configuration Manager makes this process simpler by including the concept of requirement rules that are evaluated at install time. Creating requirement rules eliminates the need for multiple collections to manage targeting of x86 and x64 versions of the same application.

We can simplify the administrative overhead even further by incorporating global conditions into the requirement rules.

This method is easier than using collections for target as the OS version is detected at install time. Additionally, using global conditions is easier than creating requirements rules for each application deployment type. 

Step 1: Planning

Before beginning this lab, consider the following scenario:

  1. Download and install Windows Server 2012, then download System Center 2012 Configuration Manager SP1  
  2. There are ten applications in which each use a requirement rule that addresses x64 versions of Windows XP and Windows 7
  3. All ten applications need to be upgraded via the requirement rule to support Windows 8 x64
  4. If global conditions were used initially, the only update required would be the one global condition and all of the applications requirements would automatically be updated to support Windows 8 x64

Let’s try an example with 7-Zip since it has both x86 and x64 versions, we can create a single application with two deployment types, each using a requirement rule and each requirement rule uses a global condition that specifies that the deployment type should only run on the specified architecture version of specific operating systems. In the images below, I have already upgraded my system to SP1 so support for Windows 8 is already visible in some of the screen shots.

Step 2: Implementation

  1. Create Two Global Conditions for OS Architecture (one x86 and one x64)

  2. Navigate to Software Library\Application Management\Global Conditions

  3. Click Create Global Condition

  4. Provide a Name such as OS Architecture x64

  5. Provide a Description (Optional)

  6. Change the Condition type to Expression

  7. Click Add Clause

  8. Set the Category to Device

  9. Set the Condition to Operating System

  10. Set the Rule Type to Value

  11. Set the Operator to One of

  12. Select all of the x64 OS versions that you want to support with this GC (if you are running CM12 SP1 or later, you can also select Windows 8 versions)

  13. Click OK

  14. Validate the Global Condition and then click OK

  15. Repeat the process for x86 Architectures


     

  16. Create a source folder with both x86 and x64 MSI versions on the application. For my example I used 7-Zip

  17. Create an Application and select the x64 version of the MSI

  18. Create a new Deployment Type of x86 and select the x86 version of the MSI

  19. Add the new Global Conditions as requirements for each Deployment Type

If you created the GC before installing SP1, you can simply update the Global condition to support Windows 8 x64 once SP1 is applied.

This same method can be used to support both desktop and modern versions of Windows 8.x applications.