HomeNewsletterCommunityToolsArchiveBlogToday's NewsAboutServicesQuick Links Subscribe free
← Back to Blog

Intune Management Extension: Why Your Win32 App Is Stuck at "Processing"

IA
Imran Awan
23 July 2026

A required Win32 app has said "Processing" for four days straight on a batch of laptops. Device compliance is green, the device shows up fine in Intune, the assignment is correct, and the same package installed cleanly on every other machine in the same group ten minutes after it was pushed. Nobody's touched the device. Nothing in the Intune admin center gives you a reason — just a spinning status that never resolves into either success or a failure code you could actually search for.

This is almost never an Intune problem. It's a problem with a small, easy-to-forget Windows service running locally on the device called the Intune Management Extension — the agent that actually does the work of installing Win32 apps, running PowerShell and Proactive Remediation scripts, and evaluating custom compliance scripts. If you've never had a reason to look at it before, this is the post that explains what it is, how it lands on a device in the first place, and the one failure mode that causes almost every "stuck processing" ticket you'll ever get.

The problem — "Processing" that never becomes "Installed" or "Failed"

The symptom is always some version of the same thing: in Intune admin center > Apps > Windows > [app name] > Device install status, a device sits at Processing (Install) indefinitely. It doesn't move to Installed. It doesn't move to Failed with a code you can look up in the app installation error reference. It just sits there, sometimes for hours, sometimes for days, while every other targeted device in the same assignment finishes normally.

The Intune console genuinely doesn't know why, because from the cloud service's point of view, nothing has gone wrong yet — it delivered the policy, and it's still waiting for the device to check in and report a result. The actual problem, and the actual evidence of what's wrong, lives entirely on the device. That's the part most admins skip straight past, because the instinct is to go looking in the Intune portal for an answer the portal was never going to have.

Note: Win32 apps are the deployment type most affected by this, but the same underlying agent is responsible for PowerShell scripts, Proactive Remediations, and custom compliance discovery scripts. If you see "stuck" behaviour on any of those, the diagnosis path in this post applies just as directly.

Why it happens — the Intune Management Extension is a separate agent that has to be running

Modern MDM in Windows is built on a set of built-in configuration service providers (CSPs) — small OS components that know how to apply specific settings pushed down over MDM. CSPs are great for structured configuration: Wi-Fi profiles, certificate deployment, most compliance settings, most restrictions. What CSPs were never designed to do is run an arbitrary installer with custom command-line switches, execute a PowerShell script and capture its output, or run a discovery script and interpret a JSON result.

To cover that gap, Microsoft ships a separate client-side agent called the Intune Management Extension (IME). Per Microsoft's own description, it's "an installer agent that enhances Windows device management. It supplements the standard Windows MDM feature by enabling advanced device management capabilities." In plain terms: it's the thing that actually runs the .exe or .msi for a Win32 app, invokes powershell.exe for your scripts, and reports the result back up to Intune — because the native MDM stack in Windows simply has no CSP that can do any of that on its own.

According to Microsoft's documentation, the IME installs automatically — once prerequisites are met — the moment any of the following is assigned to a user or device:

The prerequisites themselves are worth knowing, because "prerequisites not met" is a real reason the agent never shows up on a device in the first place: the device must be on a supported Windows version (not S mode, not Windows Home), it must be Microsoft Entra joined, Entra hybrid joined, or Entra registered, and it must actually be enrolled in Intune. On co-managed devices, the Apps workload has to be set to Pilot Intune or Intune for Win32 apps to trigger the agent — though PowerShell scripts will still run even if the Apps workload stays on Configuration Manager.

Tip: once installed, the IME doesn't appear in the Start menu — it's headless. You confirm it's present by opening Task Manager and looking for a service literally named IntuneManagementExtension under the Services tab, or by checking for its log folder on disk (covered below).

Here's the mechanic that trips people up most: the IME does not check in with Intune on the same schedule as the regular MDM sync. Per Microsoft, "the IME checks for new or updated installations with Intune services every 8 hours. This check-in process is independent of the MDM check-in." That means forcing a device sync from the Intune admin center's Devices blade — the "Sync" button every admin reaches for first — triggers an MDM check-in, but it does not force the IME to check in. If the IME's own cycle hasn't come around yet, a Win32 app assignment can sit waiting on the device for hours even though the device itself is online, healthy, and syncing fine.

Gotcha: "Sync" in the Intune admin center's device Overview pane and "Sync" inside Company Portal > Settings on the device are not the same action. Company Portal's Sync triggers both an MDM check-in and an IME check-in. The admin-center Sync button only does the former. If you're trying to force a stuck app to reprocess, the fastest reliable option is on the device itself, not the portal.

The other common root cause is the underlying IntuneManagementExtension Windows service simply not running — stopped, crashed, or stuck in a state where it isn't actively polling. If the service isn't up, nothing gets processed no matter how many times Intune re-delivers the policy from the cloud side. Less commonly, a script assigned to run detection or install logic can itself misbehave badly enough — hanging, waiting on user input that never arrives, producing far more console output than the agent is designed to capture and relay back — that the IME's own processing of that one payload stalls, which can make everything behind it in the queue look stuck too.

It's worth being precise about the limits of what's confirmed in Microsoft's own documentation here rather than repeating numbers that get passed around forum threads as fact. Microsoft's public IME article doesn't publish an exact script execution timeout or a hard output-size ceiling in kilobytes — what it does document clearly is the check-in cadence (every 8 hours, independent of MDM sync) and the conditions that cause the agent to remove and reinstall itself. If a script genuinely never returns control to the agent, or floods standard output far beyond what a status-reporting payload is meant to carry, the practical effect you'll see is the same regardless of the exact internal ceiling: that one item stops progressing, and anything queued behind it in the same processing cycle looks stuck along with it. Treat "the script itself is hanging or over-verbose" as a hypothesis to rule in or out from the logs, not a number to test against.

How to verify — check the agent's actual state on the device, not the portal

All three of the likely causes — service not running, IME check-in timing, or a runaway script — leave evidence on the device, in one specific location: C:\ProgramData\Microsoft\IntuneManagementExtension\Logs. This is where you actually diagnose the problem, not the Intune admin center.

PowerShell 7 (Admin) — quick manual check
# Step 1 — is the service even running? Get-Service -Name "IntuneManagementExtension" | Select-Object Name, Status, StartType # Step 2 — does the log folder exist, and how fresh is it? Get-ChildItem "C:\ProgramData\Microsoft\IntuneManagementExtension\Logs" | Sort-Object LastWriteTime -Descending | Select-Object Name, LastWriteTime -First 10

Microsoft's own documentation lists the individual log files and what each one is for — this is the part worth bookmarking, because guessing which log to open wastes more time than the actual troubleshooting:

Log fileWhat it's for
IntuneManagementExtension.logThe main log — IME check-ins, policy requests, policy processing, and reporting.
AppWorkload.logWin32 app deployment activity specifically — this is the one to open first for a stuck app.
AgentExecutor.logTracks execution of Intune-deployed PowerShell scripts.
AppActionProcessor.logDetection and applicability checks for assigned apps.
ClientHealth.logThe health of the IME agent itself.
HealthScripts.logHealth of scheduled Proactive Remediations.

Open these with CMTrace.exe rather than Notepad — it colour-codes errors and follows the file live, which matters because these logs get written to continuously while the agent is actually working through a queue.

Microsoft also ships a self-help diagnostic for exactly this scenario. From the Microsoft 365 admin center, go to Help & support, describe the issue (something like "user's app deployment isn't completing"), enter the affected user's email, and run the Intune app deployment diagnostic. It can't make changes to your tenant, but it will surface known configuration issues automatically — worth running before you go device-hunting, since it takes under a minute.

Warning: the Intune Troubleshoot pane (Troubleshooting + support > Troubleshoot, or directly at aka.ms/intunetroubleshooting) shows you the app's lifecycle from the cloud side — created, targeted, delivered — but it will not tell you the IME's local service state or show you script output. That evidence only exists on the device.

The fix — restart the agent, force the right kind of sync, and clear stuck scripts

Once you've confirmed which of the three causes you're looking at, the fix is usually fast. Work through these in order.

On the device — restart the agent and force a real IME check-in
  1. Open Task Manager on the affected device.
  2. Go to the Services tab and find IntuneManagementExtension.
  3. Right-click it and select Restart. Per Microsoft, this immediately initiates a new check-in with Intune.
  4. Alternatively, open Company Portal on the device, go to Settings, and select Sync — this triggers both an MDM check-in and an IME check-in in one action.
  5. Watch AppWorkload.log in real time with CMTrace to confirm the app is being re-evaluated.
Intune Admin Center — confirm the assignment side isn't the real cause
  1. Sign in to the Microsoft Intune admin center.
  2. Select Apps > Windows.
  3. Select the app in question, then Device install status.
  4. Confirm the specific device is actually targeted by the assignment (required vs. available, and the correct group).
  5. If the device shows as targeted and correct here, the fault is on the device — go back to the Task Manager steps above rather than re-editing the assignment.
Tip: if restarting the service doesn't clear it, check whether the device can even reach the required Intune Management Extension endpoints — a proxy or firewall blocking outbound access will produce the exact same "stuck" symptom, because the agent physically can't get its policy payload. See network endpoints for Microsoft Intune for the current URL list.

If the cause turns out to be a specific script or app hanging rather than the service itself, the fix is different — you're not restarting the agent, you're removing the thing that's stalling it. Delete the device's record for that specific app or script under the app's Device install status, confirm the device isn't still targeted by a broken script assignment, and republish a corrected script or detection rule before reassigning. A script that never exits — waiting on user interaction that will never come on an unattended device, or producing an unbounded amount of console output — needs to be fixed at the source; restarting the IME service repeatedly on the device will not resolve a genuinely broken script, it'll just retry the same failure.

Gotcha: Microsoft's documentation notes the IME removes itself from a device under three conditions — no PowerShell scripts remain assigned, the device is no longer managed, or the agent has been in an irrecoverable state for over 24 hours of device-awake time. If a device has been off or asleep for an extended period, don't be surprised if the agent needs to reinstall itself from scratch on the next check-in rather than simply resuming.

Proof it worked — confirm the local agent state before trusting the portal again

The reliable way to prove the fix landed is the same place you diagnosed it: the device, not the portal. Confirm the service is running, confirm the logs are being written to recently, and confirm AppWorkload.log shows the app moving through its states rather than sitting idle. The companion script below automates exactly that check — service status, log recency, and a scan of AppWorkload.log and AgentExecutor.log for pending or failed activity — so you get a single read-only snapshot instead of opening four log files by hand every time this comes up.

Download the script — GitHub

Get-IMEHealthCheck.ps1 is free and open source. It's a genuinely read-only script — no writes to Autopilot, Intune, or Entra ID.

Get-IMEHealthCheck.ps1 View full repo →
Example output below is illustrative, not a live-device capture. It matches the script's real structure and message wording, with fictional log timestamps, so you can see what a run looks like before testing it yourself.
Get-IMEHealthCheck.ps1 — example output (illustrative)
.\Get-IMEHealthCheck.ps1 == Service status == Service 'IntuneManagementExtension' found - Status: Running, StartType: Automatic == Log folder == Log folder exists: C:\ProgramData\Microsoft\IntuneManagementExtension\Logs IntuneManagementExtension.log last written 3 hours ago (2148 KB) AppWorkload.log last written 41 hours ago (612 KB) AgentExecutor.log last written 41 hours ago (88 KB) == Pending/failed activity scan == AppWorkload.log - 9 of last 200 lines matched pending/fail/error markers Sample (most recent match): [AppWorkload] Waiting for app installation to complete: Adobe Acrobat Reader DC (retry 6 of 10) Overall health : DEGRADED Warnings: - AppWorkload.log has not been written to in 41 hours despite a pending app install - the service may be stuck rather than actively retrying. Full structured result object returned to the pipeline (pipe to Format-List / ConvertTo-Json for detail).
Note: this script is deliberately read-only. It checks the IntuneManagementExtension service state, the age of the log files under C:\ProgramData\Microsoft\IntuneManagementExtension\Logs, and counts of pending or failed activity referenced in those logs. It makes no changes to the service, the registry, or any assignment — it's a diagnostic snapshot you can run before you touch anything.

If you need a second opinion beyond what's on the device, Intune's Collect diagnostics device action pulls the entire IME log folder (%ProgramData%\Microsoft\IntuneManagementExtension\Logs\*.*) plus the HKLM\SOFTWARE\Microsoft\IntuneManagementExtension registry key straight from the device into a downloadable zip, without interrupting the user — useful when you can't get remote access to the box directly but can still trigger a cloud action against it.

References

Share this post
LinkedIn X / Twitter Reddit Bluesky

More from EndpointWeekly

Intune
Microsoft Intune: Win32 vs. Store App Deployment — Complete Guide
When to package as Win32 versus Store/MSIX, and how the IME's role differs between the two.
Intune
Intune Win32 App Deployment: Complete Guide from Packaging to Monitoring
Packaging, detection rules, assignment types, and monitoring for the full Win32 app lifecycle.
Technical Guide
Silently Fix a Missing Primary Refresh Token with Intune Proactive Remediations
Another IME-powered workload — the 6-step automated remediation that detects and fixes a broken PRT.