SCCM Package Vs Application 32 Vs 64 Context

Let’s understand the differences between SCCM Package Vs Application 32 Vs 64 Context. Discussing the differences between SCCM CB packages and the application model is not new.

I have seen several posts and discussions about the advantages of using an application model rather than “classic” packages. Let’s see more details about SCCM Package Vs. Application.

I recommend using applications rather than packages because of several reasons. I’m not getting into the details of using the advantages of using the SCCM CB application model. In this post, we will see a video experience of the SCCM CB package runs in 32-bit and application in a 64-bit context.

History of SCCM packages?

SCCM 2007 was a 32bit application, and if I understand correctly, SCCM 2007 packages always run in a 32-bit context. This could be because the package implementation is simply a 32-bit code. The packages can’t run in a 64-bit context. Is this true for SCCM CB as well?

Patch My PC
SCCM Package Vs Application
SCCM Package Vs. Application | SCCM Package Vs Application 32 Vs 64 Context 1

As per my testing and video tutorial here, the packages in SCCM CB always run in a 32-bit context. This statement is true for Windows 10 32-bit and 64-bit machines. It won’t be easy to understand and reproduce this scenario when you try to deploy MSI or EXE applications as a package.

The MSI/EXE applications, packaged to run only with 32bit, will work fine with SCCM CB packages. However, when trying to convert these 32bit packages into a new application model, these apps will fail.

To fix this issue, we need to enable an option in the SCCM app model (Deployment type properties) called “Run installation and uninstall the program as 32-bit process on 64-bit clients“.

SCCM Package Vs Application
SCCM Package Vs. Application | SCCM Package Vs Application 32 Vs 64 Context 2

How to confirm SCCM Packages run with a 32bit code?

I created a PowerShell script to use package options in SCCM CB. Navigate \ Software Library \ Overview\Application Management\Packages” and right-click and create a package with the PowerShell script. Deploy the script to Windows 10 64bit machine.

When we deploy the PowerShell script to Windows 10 64bit machine then, the Windows PowerShell 32-bit application is executed, as you can see in the video here. This proves the SCCM CB package uses 32-bit code, which can’t run in a 64bit context.

You can deploy 64-bit MSI/EXE/Scripts using SCCM packages. The best method is to run the package from the SysNative context. Sysnative is a virtual folder that will help us access the 64-bit System32 folder from a 32-bit application or script.

SCCM Package Vs Application
SCCM Package Vs. Application | SCCM Package Vs Application 32 Vs 64 Context 4

SCCM CB Software center client is still a 32bit application. You can see the app SCClient(32-bit) in the above picture. This proves that the new software center is a 32-bit client on Windows 10 64-bit machine.

How to confirm SCCM Applications run with 64-bit code?

SCCM CB application always runs in a 64-bit context. By default, all the applications created using the SCCM CB app model use 64bit context to start the execution. Your 32-bit application will fail if you create an SCCM application and deploy it to clients.

When there is a specific requirement to run within a 32bit context, you need to enable the following option “Run installation and uninstall the program as 32-bit process on 64-bit clients“. You can get this option from Application – deployment type properties.

To prove SCCM applications use 64bit context to run MSI/EXE/Scripts, I have created an application via \Software Library\Overview\Application Management\Applications. I used the same PowerShell script (which I used to develop the SCCM package). Deployed application to Windows 10 device.

I have initiated the PowerShell execution from the Software center, as you can see in the video here. The PowerShell script (Windows PowerShell) runs within a 64bit context. The same PowerShell script ran in a 32bit context when deployed as an SCCM package.

SCCM CB Task Sequence Runs within 64bit context

The Task Sequence in SCCM CB runs within a 64bit context. But, the SCCM CB TS engine provides a similar option like applications to run 32bit applications/scripts.

The option is to enable the following option “Run installation and uninstall the program as 32-bit process on 64-bit clients“.

References – SCCM Package Vs. Application

  • SCCM Application Versus Package – here
  • ConfigMgr 2012 and 32-bit Application Installers – here
  • PowerShell App Deployment Toolkit – here

Author

Anoop is Microsoft MVP! He is a Solution Architect in enterprise client management with more than 20 years of experience (calculation done in 2021) in IT. He is Blogger, Speaker, and Local User Group HTMD Community leader. His main focus is on Device Management technologies like SCCM 2012, Current Branch, and Intune. He writes about ConfigMgr, Windows 11, Windows 10, Azure AD, Microsoft Intune, Windows 365, AVD, etc……………

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.