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:
- Download and install Windows Server 2012, then download System Center 2012 Configuration Manager SP1
- There are ten applications in which each use a requirement rule that addresses x64 versions of Windows XP and Windows 7
- All ten applications need to be upgraded via the requirement rule to support Windows 8 x64
- 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
Create Two Global Conditions for OS Architecture (one x86 and one x64)
Navigate to Software Library\Application Management\Global Conditions
Click Create Global Condition
Provide a Name such as OS Architecture x64
Provide a Description (Optional)
Change the Condition type to Expression
Click Add Clause
Set the Category to Device
Set the Condition to Operating System
Set the Rule Type to Value
Set the Operator to One of
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)
Validate the Global Condition and then click OK
Repeat the process for x86 Architectures
Create a source folder with both x86 and x64 MSI versions on the application. For my example I used 7-Zip
Create an Application and select the x64 version of the MSI
Create a new Deployment Type of x86 and select the x86 version of the MSI
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.