<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Device Management &#8211; Lethsinspire</title>
	<atom:link href="https://lethsinspire.com/category/device-management/feed/" rel="self" type="application/rss+xml" />
	<link>https://lethsinspire.com</link>
	<description>Leth&#039;s inspire</description>
	<lastBuildDate>Thu, 17 Sep 2026 10:27:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://lethsinspire.com/wp-content/uploads/2026/09/cropped-lethsinspire-logo-32x32.png</url>
	<title>Device Management &#8211; Lethsinspire</title>
	<link>https://lethsinspire.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Application Control for Business can break Autopilot User ESP in specific scenarios</title>
		<link>https://lethsinspire.com/application-control-for-business-can-break-autopilot-user-esp-in-specific/</link>
					<comments>https://lethsinspire.com/application-control-for-business-can-break-autopilot-user-esp-in-specific/#respond</comments>
		
		<dc:creator><![CDATA[Morten Leth Hedegaard]]></dc:creator>
		<pubDate>Thu, 17 Sep 2026 09:53:43 +0000</pubDate>
				<category><![CDATA[Windows Management]]></category>
		<category><![CDATA[ACfB]]></category>
		<category><![CDATA[Device Management]]></category>
		<category><![CDATA[Intune]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[WDAC]]></category>
		<guid isPermaLink="false">https://lethsinspire.com/?p=1582</guid>

					<description><![CDATA[TL;DR If you roll out an&#160;Application Control for Business policy with a Managed Installer to a device that is&#160; going through Windows Autopilot, and your Device ESP doesn&#8217;t contain at least one Win32 app, and your User ESP&#160;has at least one Win32 App, you can end up with a User ESP failure.&#160;The Managed Installer policy [&#8230;]]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1582" class="elementor elementor-1582">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-191c3112 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="191c3112" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6a0d4230" data-id="6a0d4230" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-1e4850d4 elementor-widget elementor-widget-text-editor" data-id="1e4850d4" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2>TL;DR</h2>
<p>If you roll out an&nbsp;<strong>Application Control for Business</strong> policy with a Managed Installer to a device that is&nbsp; going through Windows Autopilot, and your <strong>Device ESP</strong> doesn&#8217;t contain at least one Win32 app, and your <b>User ESP</b>&nbsp;has at least one Win32 App, you can end up with a <strong>User ESP failure</strong>.&nbsp;The Managed Installer policy is delivered through an Intune Remediation. The client doesn&#8217;t execute a newly assigned remediation the instant it&#8217;s received — Intune&#8217;s internal job scheduler (SerialJobScheduler) queues it and runs it on its own interval, separate from the Win32 app agent&#8217;s install timeline — so the policy can land after User ESP has already started tracking your Win32 apps. Those apps then sit in&nbsp;<span style="color: #d63384; font-family: monaco, consolas, 'Andale Mono', 'DejaVu Sans Mono', monospace; font-size: 14px;">InProgressPendingManagedInstaller</span>, waiting for a policy that hasn&#8217;t arrived yet, and by the time it does, ESP has already moved on without them.</p>
<p>The <b>fix</b> is simple once you know the mechanism: <strong>make sure Device ESP has at least one Win32 app</strong>. That forces Application Control for Business to wait for the Managed Installer policy <em>during <b>Device ESP</b></em>, before Autopilot ever hands control to <b>User ESP</b>.</p>
<p>This post walks through the mechanism and backs every step with lines pulled from an actual <code>MdmDiagReport</code> collected on the affected device &#8211; though annonymised.</p>
<h2>The environment</h2>
<ul>
<li><strong>Device ESP</strong> apps:
<ul>
<li>Microsoft 365 Apps (installed as <em>Microsoft 365 Apps</em>, <strong>not</strong> a Win32 app — it&#8217;s a Click-to-Run app type) (yes, i know, per Microsoft docs. you should not enable this, but some clients still want to do that).</li>
<li>Company Portal (a UWP/Store app, also not Win32)</li>
</ul>
</li>
<li><strong>User ESP</strong> apps:
<ul>
<li>3 Win32 apps</li>
</ul>
</li>
<li>An <span style="font-weight: bold; color: #1b1525;">Application Control for Business</span><span style="color: #1b1525;"> policy</span>&nbsp;with Managed Installer enabled.</li>
<li>A <b>Managed Installer</b> configuration created from the builtin policy from Intune.</li>
</ul>
<div>&nbsp;</div>
<div>
<h2 style="color: #1b1525;">The problem</h2>
</div>
<p>The Managed Installer policy is pushed via a <b>Proactive Remediation</b>, which — unlike a normal device configuration profile — isn&#8217;t applied to the client the instant it&#8217;s assigned. The client only picks it up on its own policy check-in cycle, independent of the Win32 app agent&#8217;s install timeline.</p>
<p>Because neither app in <b>Device ESP</b> is a Win32 app<b>, </b>nothing in <b>Device ESP</b> ever needs the <b>Managed Installer</b> AppLocker rule. <b>Device ESP</b> can complete perfectly fine while the <b>Managed Installer</b> policy is still nowhere near being applied, resulting in the <b>User ESP </b>failing on Application install.</p>
<h2>What the logs actually show</h2>
<h3>1. Device ESP registers a single, non-Win32-blocking app</h3>
<p>Logfile: Appworkload.log</p>
<pre><code>[Win32App][ESPAppLockInProcessor] 1 app(s) have been registered for ESP tracking
for device. 0 app(s) were skipped.</code></pre>
<p>At this point the device is still in Device ESP. Only one app is registered for tracking here (Company Portal); Microsoft 365 Apps doesn&#8217;t go through the Win32 app agent at all, so there&#8217;s no Win32 app whose enforcement is gated by AppLocker/Managed Installer during this phase.</p>
<h3>2. Device ESP finishes, User ESP starts tracking the 3 Win32 apps</h3>
<p>Logfile: Appworkload.log</p>
<pre><code>[Win32App][ESPAppLockInProcessor] 3 app(s) have been registered for ESP tracking
for user &lt;GUID&gt;. 0 app(s) were skipped.
0 app(s) were tracked in previous phase.
</code></pre>
<p>This is the moment Autopilot moves from Device ESP into User ESP (Account Setup), and the three Win32 apps assigned to the user start being processed.</p>
<h3>3. The Managed Installer policy isn&#8217;t there yet</h3>
<div>Logfile: IntuneManagementExtension.log</div>
<pre><code>[ManagedInstallerSync] Did not find managed installer policy
</code></pre>
<p>This log entry lands <strong>2 seconds</strong> after User ESP started tracking the Win32 apps. The client is now trying to enforce the Managed Installer requirement for Win32 app installs, but the AppLocker &#8220;ManagedInstaller&#8221; rule collection hasn&#8217;t been delivered by the remediation script yet.</p>
<h3>4. Every Win32 app targeted at the user is put on hold</h3>
<p>The Win32 app agent logs show, for each of the Win32 apps, the same pattern within the <code>EspPhase: AccountSetup</code> window, in this sample, i have 3 apps:</p>
<p>Logfile: AppWorkload.log</p>
<pre><code>[Win32App] Managed installer opt-in is enabled, but the policy has not been set
on this client, app will not be downloaded until the policy is processed.
PolicyId: &lt;Application_GUID&gt;

[Win32App][ReportingManager] Download state for app with id:
&lt;Application_GUID&gt; has been updated.
Report delta: {"EnforcementState":{"OldValue":"InProgress",
"NewValue":"InProgressPendingManagedInstaller"}}

[Win32App][DownloadActionHandler] Pending Managed Installer enforcement.
App will be processed again after managed installer is enabled.
</code></pre>
<p>The same three-line pattern repeats for all three Win32, and the apps are parked in <code>InProgressPendingManagedInstaller</code> almost simultaneously, right at the start of User ESP.</p>
<p>A note which also appears in the logfile is that: the <em>download requests</em> for these apps went out with <code>"EspPhase":"AccountSetup"</code> in the JSON payload (visible in the same log lines) — confirming this is happening inside User ESP, not Device ESP.</p>
<h3>5. The Managed Installer policy only lands minutes later</h3>
<div>
<p>Logfile: AgentExecutor.log</p>
<pre><code>VerifyCompliance Effective AppLocker Policy is: ... RuleCollection Type="ManagedInstaller" ...
[...]
detect.ps1 Intune management extension is set as the managed installer.</code></pre>
<p>The AppLocker policy containing the ManagedInstaller rule collection — the thing that actually turns on Managed Installer enforcement — shows up as applied here, roughly 2.5 minutes after the Win32 apps were parked pending it. That delay is a direct consequence of the policy being delivered via Remediation: the client has to pick up the policy on its own check-in cycle, queue it in the Intune Management Extension&#8217;s internal job scheduler (SerialJobScheduler), and only then execute it via agentexecutor.exe -remediationScript — a path with its own timing, independent of and uncoordinated with the Win32 app agent&#8217;s install sequence.</p>
</div>
<h3>6. Meanwhile, ESP has already moved on</h3>
<p>The Managed Installer policy briefly took effect once, but the app&#8217;s enforcement state flipped from <span style="color: #d63384; font-family: monaco, consolas, 'Andale Mono', 'DejaVu Sans Mono', monospace; font-size: 14px;">InProgressPendingManagedInstaller</span> to <span style="color: #d63384; font-family: monaco, consolas, 'Andale Mono', 'DejaVu Sans Mono', monospace; font-size: 14px;">InProgress</span> and back to <span style="color: #d63384; font-family: monaco, consolas, 'Andale Mono', 'DejaVu Sans Mono', monospace; font-size: 14px;">InProgressPendingManagedInstaller</span> within one second. By the time the app finally reached <span style="color: #d63384; font-family: monaco, consolas, 'Andale Mono', 'DejaVu Sans Mono', monospace; font-size: 14px;">EnforcementState: Success</span>, the same status report shows <b>&#8220;EspPhase&#8221;:0</b> instead of <b>&#8220;EspPhase&#8221;:3</b> — meaning ESP was no longer tracking it at all. In other words: the app did eventually install correctly once the Managed Installer policy was fully in place, but only after <b>User ESP</b> had already exited, so from ESP&#8217;s perspective the installation counts as failed.</p>
<h2>Why Device ESP would have prevented this</h2>
<p>If <b>Device ESP</b> had contained <strong>at least one Win32 app</strong>, that app would have hit the exact same <code>Managed installer opt-in is enabled, but the policy has not been set on this client</code> check — but <em>during Device ESP</em>. <b>Device ESP&#8217;s</b> tracking window is evaluated before Autopilot is allowed to proceed to <b>User ESP</b> at all, so Autopilot would simply wait (within its own timeout) at the device phase until the Managed Installer policy landed — which is also when Application Control for Business&#8217;s AppLocker policy is normally in place early, since it&#8217;s rolled out early in the flow.</p>
<p>In other words: forcing at least one Win32 app into Device ESP turns the Managed Installer dependency into a <em>device-phase</em> blocker instead of a <em>user-phase</em> blocker — and the device phase is exactly where you have the runway to let a Remediation-delivered policy actually land before the client needs it.</p>
<h2>The fix</h2>
<p><strong>Ensure Device ESP always contains at least one Win32 app</strong> in autopilot that uses:</p>
<ul>
<li>Application Control for Business with Managed Installer enabled, <strong>and</strong></li>
<li>A Managed Installer policy delivered via Intune&#8217;s builtin managed installer, which uses a &#8220;Proactive Remediation script).</li>
</ul>
<div>In this above scenario we used the builtin &#8220;Microsoft 365 Apps&#8221; policy to install in the device scenario, we could have &#8220;solved&#8221; our issue by converting this into a Win32 app, but we did not want to do that. Hence we made a script that created a registry, converted it into a Win32 app, and deployed that in <b>device ESP</b> &#8211; alongside the other applications.&nbsp;</div><div><br></div>
<p>This is a small, low-risk addition to your Device ESP app list, but it closes a real timing race that otherwise makes Autopilot ESP intermittently — and confusingly — unstable, since the failure is entirely dependent on how fast the remediation happens to run on a given device.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		]]></content:encoded>
					
					<wfw:commentRss>https://lethsinspire.com/application-control-for-business-can-break-autopilot-user-esp-in-specific/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Object Caching 41/57 objects using Disk
Page Caching using Disk: Enhanced 

Served from: lethsinspire.com @ 2026-09-17 16:23:20 by W3 Total Cache
-->