Coding Stephan

Intune requirement for ARM64 devices

Since Microsoft is support Windows 11 on ARM64 devices, we see more and more devices running arm. While Microsoft made sure that it will emulate support for x64 applications. Running native ARM64 applications is way more power efficient and faster. If you manage your environment with Microsoft Intune, you might want to push ARM64 applications to your devices as well.

Intune requirements not met

Native support in Intune

As of May 2025, if you want to deploy ARM64 applications to your devices, you have to set the architecture to X64. The applicableArchitectures property has to be set to x64 for you to be able to create this application. Available options are x64, x86 or empty. I think Microsoft also saw this issue, and they are slowly rolling out the AllowedArchitectures property, but in my tenant this is not available yet.

The allowed architectures feature is not enabled for this account.

The documentation in the Microsoft Graph Beta endpoint state:

Indicates the Windows architecture(s) this app should be installed on. The app will be treated as not applicable for devices with architectures not matching the selected value. When a non-null value is provided for the allowedArchitectures property, the value of the applicableArchitectures property is set to none. Default value is none. Possible values are: none, x86, x64, arm, neutral, arm64.

Registry requirement

Windows cleverly set the Environment variable PROCESSOR_ARCHITECTURE to ARM64 when running on ARM64 devices. And on Windows they use the registry to save computer environment variables. The registry key is located at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. The value of the PROCESSOR_ARCHITECTURE key is set to ARM64 on ARM64 devices.

And when you create an application in Intune, you can set the requirementRules property to check for the existence of this registry key. The detection rule will look like this:

{
  "requirementRules": [
    {
      "@odata.type": "#microsoft.graph.win32LobAppRegistryRequirement",
      "check32BitOn64System": false,
      "detectionType": "string",
      "detectionValue": "ARM64",
      "keyPath": "HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment",
      "operator": "equal",
      "valueName": "PROCESSOR_ARCHITECTURE"
    }
  ]
}

Intune add requirement rule

ARM64 apps in WinTuner

My PowerShell module WinTuner, has better support for Arm64 applications since version 1.1.1 (released on 2025-05-30). The changes made to WinTuner are:

  • When creating win32 packages, they will be put in the {packageFolder}\{packageId}\{version}-arm64 folder, meaning the arm64 packages will be kept in a separate folder.
  • Upon deploying these packages to Intune, the applicableArchitectures property will be set to x64, and a requirement rule will be added to check for the PROCESSOR_ARCHITECTURE registry key.
  • The display name of the package will be set to {packageName} (ARM64)
  • When using the Get-WtWin32App cmdlet, the arm64 architecture will be parsed from the display name.

Support WinTuner development

Over the past 2 years, WinTuner has been downloaded over 180.000 times, are you one of those users? If you are, have you considered supporting me on GitHub as a sponsor? It would help me to keep developing WinTuner and other tools for the community.

Conclusion

Until Microsoft adds native support for Arm64 applications in Intune, this additional requirement rule can make sure that it won’t try to install the Arm64 apps on x64 devices. Sadly those requirements are only checked upon installation, resulting in an error that the “requirements are not met”.