- SmartDeploy: Rethinking software deployment to remote workers in times of a pandemic - Thu, Jul 30 2020
- Outlook attachments now blocked in Office 365 - Tue, Nov 19 2019
- PolicyPak MDM Edition: Group Policy and more for BYOD - Tue, Oct 29 2019
Having to test, deploy, and manage dozens of applications is difficult enough. Managing applications across multiple architecture types can be downright tricky. There are many ways to deploy multi-architecture applications, including using WMI filters and architecture security groups. I prefer to keep things simple, though. Simple means fewer parts and more automation.
Group Policy and SCCM support multi-architecture deployments that require just a one-time setup. Let’s start by covering these deployments with a Group Policy software installation and then look at SCCM.
Installing X86 and X64 applications with a Group Policy
In both parts of this article, we will be using 7-Zip as our test application. It comes in both architecture flavors. Download both versions in a share accessible by domain computers. Create a folder named 7-Zip, a sub-folder for the version, and an additional folder for each architecture. Your software share structure should now look like this:
Splitting up the application into architecture folders will reduce network traffic if you move to SCCM.
Create a new GPO and a security group named APP_7-Zip. Scope the GPO so that it is linked to an OU containing X86 and X64 test computers and only applies to your APP_7-Zip security group. Edit your GPO and navigate to Computer Configuration/Policies/Software Settings/Software installation.
Add a new package and browse to your X86 application. For the deployment method, select Advanced. On the Properties page, select Advanced (again) and uncheck Make this 32-bit X86 application available to Win64 machines.
This will prevent X64 machines from installing the X86 application.
Set any additional options (such as adding MSTs under Modifications), and then add a second new package. Add your X64 application. You do not need to make any advanced deployment changes with this package. You should now have two applications listed in your GPO.
This GPO will now install applications based on architecture.
If you reboot an 32-bit and an 64-bit client, they will each install their respective applications. With Group Policy software installation mastered, let’s cover architecture installs with SCCM.
Deploying 32-bit and 64-bit applications with SCCM
First, ensure that your applications are organized with the folder structure under the Group Policy software installation section. When the System Client evaluates the applications that need to be installed, content divided by architecture will ensure a faster caching time.
Terminology can be a bit confusing with SCCM. For simplicity’s sake, an application will contain multiple deployments (MSIs). These deployment types allow our computers to choose based on their architecture.
Start by creating a new application in SCCM. Instead of automatically detecting the MSI information, select Manually specify the application information. Fill out the general application information. Be sure to list a publisher and a software version.
Under Deployment types, select Add and then list your X86 application in the Location field. Under Name, be sure that the application name contains something like (x86 edition). This will make reporting easier after the install. Continue through the wizard until you reach the Requirements pane. Create a new Device requirement and change the condition to Operating system. Leave the Operator value as One of. This will allow you to specify OR statements.
Expand each operating system that you support and check the 32-bit version. Under Windows 7, you would check All Windows 7 (32-bit). Finish the wizard and then add a second deployment type. This time, import your X64 application. Be sure that the name contains X64 and set the OS requirements accordingly. Your requirements should look something like the screenshot below.
Configuring X64 OS requirements in SCCM
Under Deployment types, you should now have two items listed. When the SCCM client evaluates the application, it will check the requirements. This allows you to manage one application and one collection deployment.
Our completed application with two architecture-dependent installs
Whether you use Group Policy or SCCM, you can deploy applications without worrying about the OS architecture. This makes your deployments and management easier. If you face other application issues, let me know in the comments below.
Very good and usefull articel. Thanks 🙂
No problem and thank you!
Hi Joseph,
Very interesting article! Thank you very much for the detailed explanation.
However, how do I pass on command line arguments to the .msi package?
Example of the command line for the application install is:
msiexec /package “application.msi” ApplicationContextID=87934798056483
Thanks,
Harish
Select properties for the application in SCCM – Deployment Types tab – edit your deployment – select the programs tab.
From here, you can edit the installation program line at the top.
Hi Joseph,
Thanks for your reply!
We do not use SCCM for deployment. Looking for an option to roll out using GPO or via a login script. Any suggestions?
-HK
For a Group Policy rollout, add that property into the MSI itself. Download the MSI editing tool ORCA (it is a Microsoft tool). Edit the MSI and go to the property page. Find the property ApplicationContextID and paste in that number. If you don’t see that property, create a new line in the property page. Be sure to back up your MSI first or generate these changes in an MST (ORCA calls this generate a transform).
Hi Joseph
Good article. Just one question, for now maybe>
We have created separate application for 32 and 64 bit versions. Can we just add the MSI to an existing package, or will we have to start from scratch?
Thanks in advance
You can add the MSIs to an existing GPO (if that is what you mean).
Hi
Thanks for this article.
I did set this up we have a mixture of 32 bit and 64 Windows 7 OS however the 2 packages I need to install are for an Outlook Plugin and there is a x86 and x64, this solution works great if the machine and Office is x86 or machine is x64 and office is x64 but what would I need to do for machines where they are x64 but are running x86 office as this rule doesnt work for those.
I have just found out that we have quite a number of machines with this configuration which has caused the SCCM deployment to fail.
Any advice on what I could do for machines with x64 OS but with x86 MS office would be great.
Thanks
You could do a file condition that checks to see where Office is installed. If it is located into Program Files, install the X64 version – if it installed in Program Files X86, install the 32bit plugin.
User is running a windows 7 machine with 64bit install, but the software centre is trying to download 32bit updates to the machine.
This is causing any of his open programs to close down as it tries to install, fails and then retries again.
It sounds like you need to target the 32bit app only to 32 bit machines by using a global condition.
Joseph Moody, my concern is, I have separated OU for pcs and I have granted by teams by OU but if we have new pc coming so my question is do we need to run all those commands to grant them again or not need to run?
You should only need to run these once per machine.