Managing 32 bit and 64 bit versions of applications using Global Conditions, Requirement Rules and Deployment Types
In CM07 (System Center Configuration Manager 2007, or 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.
CM12 (System Center 2012 Configuration Manager) makes this 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.
Before I walk you through an example, consider the following scenario:
- You are running CM12CU2
- You have ten applications that each use a requirement rule that addresses x64 versions of Windows XP and Windows 7
- You update to CM12SP1 which includes support for windows 8
- You now have to update all ten applications requirement rule to support Windows 8 x64
- If you had used global conditions instead, you would only need to update 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.
Overview – Creating Applications with Global Conditions, Require Rules and Deployment Types
This overview assumes that you are already familiar with Applications and Deployment types. More details are provided on Global conditions and Requirement rules.
Create the Global Conditions
- 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)
- Click OK
- Validate the Global Condition and then click OK
- Repeat the process for x86 Architectures
Create the Application and Deployment Types
- 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 RT (ARM) and x64 versions of Windows 8 applications.