System Center 2012 Configuration Manager comes with a lot of great built-in requirements out of the box; however they’re generally just generic conditions that are specific to the Windows Operating Systems or User accounts. This makes sense because not only would it be impossible to take into consideration every possible condition for even their own software, someone who is using ConfigMgr for purely server management isn’t going to care about settings for software like Microsoft Office even!
Fortunately, Microsoft made it quite simple to create your own custom conditions which can be used as Application Requirements.
Here’s a real-life example I used for a deployment in my company:
I was asked to deploy Lync 2013 throughout the company (around 1900 computers/users). Sounds simple enough except for a few things that needed to be taken into consideration. In the organization we have people using both Office 2010 Standard/Professional and Office 2013 Standard/Professional. On top of that, there are people using both the x86 and x64 versions of Office. Not only that but people using Office 2013 Professional don’t need Lync 2013 installed because it already ships with Lync.
While it is possible to deploy a version of Lync 2013 that includes both x86 and x64 versions, this version is around 1GB in size! The individual versions, while still large are about 300-400MB smaller which certainly would make a difference to VPN users who are connecting from home or more importantly tethering with their company cell phones. So I opted to use separate versions of each to try and make the deployments as small as possible.
This left me with two choices:
1. Determine all the users of each version of Office before-hand and deploy each version to a separate collection based on which version of Office each person uses. Extremely cumbersome.
2. Use requirements and deployment types and let SCCM figure out which version of Office should go on each computer. (DING DING DING! WE HAVE A WINNER!)
So finally, how to we determine which version of Office is installed? Custom Requirements. These are also known as Global Conditions in SCCM and you can find them by expanding the Application Management folder in the Software Library workspace in the Administration Console. You can also create them on the fly in the Requirements tab of the Application Deployment Type.
There are probably many ways that you can determine the whether Office is 2010/2013 and x86/x64 but this is just the way I did it.
Versions of Office 2010 and 2013 that include Outlook will have a specific registry key: HKLM\SOFTWARE\Microsoft\Office\14.0\Outlook (for 2010) and HKLM\SOFTWARE\Microsoft\Office\15.0\Outlook (for 2013) and under this key you should find the Value named Bitness. If Office is 32-bit the data will equal x86, if Office is 64-bit the data will equal x64.
Since we are using this for Application deployment we will create this in the Application Deployment Type Requirements tab instead of the Global Conditions node. Select Add to set a new requirement for this Application.
In the category dropdown menu, select Custom. Then select Create.
As you can see there are many options here but we’re going to use a registry Value.
When we’re finished the Custom requirement will look like this.
Click OK and you will be returned to the Create Requirement dialog. Select your new custom requirement and enter the value you are looking for.
Now you will have your custom requirement for your Application.
Next you will want to add a second requirement to check for the x86 version of Office 2013.
In the case of my Lync 2013 deployment, I also needed a separate Deployment Type for the x64 versions of Office with the requirements checking for x64 bitness of the office versions.
And don’t forget, if you have computers with Office Professional 2013, you already have Lync 2013 so you won’t want to deploy to that version! In that case, you will need to use another deployment type with a Detection Method that determines if Office Pro is installed and consider Lync to already be installed.
When it comes to Application Deployment in SCCM, I try to keep things as simple as possible but in some cases you need to account for a lot of different scenarios that you may have in your environment. Fortunately SCCM 2012 allows you to take that into consideration!