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 imagePNGMost 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:
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 command —
setup.exe /silent /quietormsiexec /i package.msi /quiet. - Uninstall command — typically
msiexec /x {GUID} /quietfor 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 value —
HKLM\SOFTWARE\Vendor\Product\Versionexists and equals X. - File or folder —
C:\Program Files\Vendor\app.exeexists 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 —
.intunewinpackage, 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
Was this useful?
Spot something wrong or want a topic covered? Send it through the contact form.