Skip to content
Browse all topics
Microsoft Intune (Devices)

Intune Win32 app deployment

By Emil Björk · Microsoft ecosystem consultant, Gothenburg

How to package and deploy Win32 applications via Intune — the IntuneWin format, detection rules, and dependencies.

3 min read

Share as imagePNG

Most enterprise Windows applications ship as MSI installers, EXE installers, or some combination — collectively called Win32 apps in Intune. Deploying them via Intune requires packaging into the IntuneWin format and defining detection, install, and uninstall logic. It's how cloud-managed Windows estates handle the long tail of apps not in the Microsoft Store.

The IntuneWin package

Intune Win32 apps are packaged as .intunewin files — a wrapped container produced by the Microsoft Win32 Content Prep Tool. The tool takes a folder containing your installer (MSI, EXE, and any supporting files) and produces a single signed package that Intune distributes.

A simple invocation:

Code
IntuneWinAppUtil.exe -c "C:\source\acme-app" -s "setup.exe" -o "C:\output"

The output .intunewin is uploaded to Intune.

Configuration in Intune

After uploading, Intune asks for:

Program

  • Install commandsetup.exe /silent /quiet or msiexec /i package.msi /quiet.
  • Uninstall command — typically msiexec /x {GUID} /quiet for MSIs.
  • Install behaviour — system context (most apps) or user context.
  • Restart behaviour — handle, suppress, or allow restarts.

Requirements

  • OS architecture and minimum version.
  • Disk space, memory, CPU.
  • Custom detection scripts for more complex requirements.

Detection rules

How Intune determines whether the app is already installed:

  • MSI product code — if it's an MSI, this works automatically.
  • Registry valueHKLM\SOFTWARE\Vendor\Product\Version exists and equals X.
  • File or folderC:\Program Files\Vendor\app.exe exists with version X.
  • Custom detection script — PowerShell that returns success/failure.

Get detection rules right. Wrong detection = "installation succeeded but Intune thinks it failed" or vice versa.

Dependencies and supersedence

  • Dependencies — other apps that must be installed first (visual C++ redistributables, .NET runtimes).
  • Supersedence — this app replaces an older version. Specify what to uninstall first, what to leave.

Assignments

  • Required (install now), available (let users pick), or uninstall (remove from devices).
  • Targeted at users or devices.
  • Optionally with delivery optimisation, scheduled time, etc.

Common pitfalls

  • Detection rules wrong — the most common failure mode. Test in a controlled environment first.
  • Silent install flag wrong — MSI typically /quiet, EXE varies by vendor. Read the vendor's docs or experiment.
  • App needs user context — some apps install to the user's profile (Chrome user-mode install, for example). Use user context, not system, for those.
  • Reboot prompts — apps that reboot mid-install can leave users in a bad state. Suppress reboots and chain them in maintenance windows.
  • Network latency — large packages from regions far from Microsoft's CDN take long to download; use delivery optimisation features.

Win32 vs MSI vs Microsoft Store vs LOB

Intune supports multiple app types:

  • Win32 app.intunewin package, max flexibility, covers most scenarios.
  • Line-of-business (LOB) app — simpler MSI deployment without the IntuneWin wrapper. Limited features but useful for straightforward MSIs.
  • Microsoft Store app — UWP apps from the Microsoft Store, simple deployment.
  • Microsoft 365 Apps — a first-class app type for Word, Excel, etc.
  • Web apps — link to a URL pinned as an app.

For most enterprise apps with installers, Win32 is the right type. It's the most powerful but also the most setup-heavy.

For Intune-managed Windows estates, Win32 app deployment is the core skill that replaces traditional software distribution methods like SCCM and packaging studios.

Frequently asked questions

What is an .intunewin file?
An encrypted package created by the Microsoft Win32 Content Prep Tool from an installer and its supporting files. Intune stores it, downloads it to the device through the Intune Management Extension, decrypts it, and runs the install command you specified.
Why is my Win32 app stuck at 'pending' or 'waiting for install'?
The Intune Management Extension has not checked in (sync the device), a dependency or requirement rule is not met, the Enrollment Status Page is still running another app, or the device is in a user-context install waiting for a user session. The IntuneManagementExtension.log on the device shows which.
What is supersedence in Intune Win32 apps?
A relationship that tells Intune a new app version replaces an old one: install the new version and optionally uninstall the old first. It handles upgrades cleanly where the old installer must be removed before the new one runs.

Further reading

Microsoft Docs & product blog

Was this useful?

Spot something wrong or want a topic covered? Send it through the contact form.