In this blog post I’ll go through how to set up a custom requirement detecting whether a computer is running x86 or x64 version of Windows 7 or Windows 8 (Works for 8.1 as well). Furthermore I’ll set a requirement that detects whether Outlook.exe is a 32-bit or 64-bit edition. The detection is flexible and independent of the Office Version.
Shorter explanation about the environment where the new application is about to be deployed:
Environment contains a great mix of:
- Windows 7 x86 with Office 2010 32 bit edition
- Windows 7 x64 with Office 2010 32 bit edition
- Windows 7 x64 with Office 2010 64 bit edition
- Windows 7 x64 with Office 2013 32 bit edition
- Windows 7 x64 with Office 2013 64 bit edition
- Windows 8 x86 with Office 2013 32 bit edition
- Windows 8 x64 with Office 2013 64 bit edition
So the required new application needs to be installed with the corresponding architecture of Office. If the Office version is 32 bit the application needs to be 32 bit also.
We end up with three deployment types in this case, because we need to take care of the path for the Office installation.
1) At a Windows 7 or 8 x86 with an Office 32 bit edition the path for Office will be:
2) At a Windows 7 or 8 x64 with an Office 32 bit edition the path for Office will be:
%programfiles(x86)% \Microsoft Office\
3) At a Windows 7 or 8 x64 with an Office 64 bit edition the path for Office will be:
As you might have noticed the path for Office 32 bit edition at a x86 Windows is equal to the path for Office 64 bit at a x64 Windows (issue). With that in mind, we cannot rely on Office version only, we need to check the OS architecture to determine which edition of the new application SCCM must deploy.
In this example I have created an application and will go through each of the requirements I have created to make things happen:
In the first deployment type I’ll cover the requirement of a
Windows 7 or 8 x64 with an Office 32 bit edition
The first requirement rule for this deployment type is the OS architecture:
Select the device category and the Operating System condition – then select All Windows 7 (x64-bit) and All Windows 8 (x64-bit)
Now we are sure that we deal with only x64 bits of Windows.
Next is to configure the custom requirement.
So add another requirement and then choose the custom category.
Then click create as we want to make a new condition
Name the condition and in setting type select the file system (keep in mind that this is for x64 OS)
In the type make sure that file is selected
In the path type: %ProgramFiles(x86)%\Microsoft Office\
In the file type Outlook.exe
Select include subfolders. Notice by doing this we make sure to search every subfolder of the Microsoft Office folder and this little trick makes it possible to search any version of Office that might be installed at the computer (in this example only Office 2010 and Office 2013 – as Office 2010 is located in a subfolder called Office14 and Office 2013 is located in a subfolder called Office15)
Click OK and then select the new condition.
Change the rule type to Existential and then select “The selected global condition must exist on client devices.”
Review the Requirements and click OK
Repeat the steps to create a new requirement for x64 OS and 64 bit edition of Office – configure the custom condition as below:
The requirements for this deployment should look like below:
Finally add the last deployment type and repeat the steps for requirements once more but this time remember it is for a Windows x86 and Office 32 bit edition.
Configure the custom condition as below – Notice the path is equal to the condition we created for Office 64 bit at a x64 Windows!
Now your application includes three different deployment types.
last step is to distribute the content and deploy the application now your users will have the correct version of the new application at their computers.