Making Zero-Touch & Automation Repeatable with Windows Autopilot
Design a bounded Windows Autopilot zero-touch workflow with explicit evidence, stop conditions and rollback paths. Validate device identity and ESP completion.

This playbook covers
Table of Contents
Table of contents
#Current Method
Many organisations attempt zero-touch deployment by enabling Windows Autopilot without defining clear operational boundaries. Devices are registered in bulk, profiles are applied globally and the Enrollment Status Page (ESP) is configured with minimal timeout controls. This approach creates friction when devices fail to join Microsoft Entra ID
The baseline friction stems from treating Autopilot as a binary switch rather than a stateful workflow. Without explicit validation steps, teams cannot distinguish between network connectivity issues, certificate trust failures and policy conflicts. This ambiguity increases mean time to recovery and undermines confidence in automation.
#Improved Workflow
A repeatable zero-touch workflow separates device registration, profile assignment and ESP validation into distinct phases. Each phase produces observable evidence that confirms success before proceeding. The workflow begins with registering hardware hashes in a controlled group, assigning a scoped Autopilot deployment profile and configuring ESP policies that prioritise device setup over user-driven actions.
This approach reduces risk by limiting the blast radius of configuration errors. By using dynamic groups based on device attributes, operators can test changes on a small subset of devices before wider rollout. The workflow explicitly defines stop conditions, such as failed ESP completion or missing compliance status, which trigger automated alerts and halt further provisioning steps.
#Implementation
Implement this workflow in an isolated validation environment. Confirm that you have Global Administrator or Intune Service Administrator permissions and that your tenant supports Windows Autopilot. Verify the Windows version on target devices matches the supported list for your chosen Autopilot profile settings.
- Register Device Hardware Hashes: Collect hardware hashes from target devices using the
Get-WindowsAutopilotInfoPowerShell module. Import these hashes into Intune under Devices > Windows > Windows enrollment > Devices. Assign devices to a dedicated Azure AD group for testing. - Create Scoped Deployment Profile: Create a new Autopilot deployment profile in Intune. Configure the out-of-box experience to hide privacy settings, skip EULA and disable local account creation. Set the user account type to Standard to enforce least privilege.
- Configure Enrollment Status Page: Create an ESP profile that blocks device use until all apps and policies are installed. Set a timeout of 60 minutes and enable progress tracking. Assign this profile to the test group created in step one.
- Assign Required Applications: Deploy a small set of mandatory applications to the test group. Use win32 app detection rules to ensure reliable installation reporting. Avoid complex dependencies during initial validation.
#Guardrails
Operational excellence requires observability and safe deployment boundaries. Limit the scope of initial Autopilot deployments to a small test group. Monitor device check-in frequency and ESP completion rates using Intune monitoring workbooks. Establish a communication channel for users in the test group to report blocking issues immediately.
Ensure that network firewalls
#Validation
Validate each stage of the workflow using observable evidence. After registering hardware hashes, confirm that devices appear in the Intune portal with the correct serial number and model. After assigning the deployment profile, verify that the profile status shows ‘Assigned’ for the test devices.
During device provisioning, monitor the ESP progress bar. Confirm that the device successfully joins Microsoft Entra ID and receives the assigned configuration profiles. Check the Intune device record for compliance status and app installation results. A successful validation shows all required apps installed and no policy conflicts reported within the ESP timeout window.

#Common Mistakes
- Global Profile Assignment: Applying Autopilot profiles to all devices without testing leads to widespread failures if configuration errors exist. Always use scoped groups for initial deployment.
- Inadequate ESP Timeout: Setting the ESP timeout too low causes devices to drop out of the provisioning process before apps finish installing. Adjust timeouts based on actual installation duration observed in testing.
- Missing Network Prerequisites: Failing to whitelist required Microsoft endpoints results in devices hanging during enrollment. Verify network connectivity before starting the provisioning process.
- Complex App Dependencies: Deploying applications with complex dependency chains during initial zero-touch setup increases the risk of timeout failures. Start with simple, standalone applications for validation.
#Recovery
If a device fails to complete the ESP, collect the diagnostic logs using the MDMDiagnosticsTool.exe utility. Analyse the logs for specific error codes related to network connectivity, certificate trust or policy application. If the failure is due to a misconfigured profile, update the profile in Intune and reset the device to retry provisioning.
For devices stuck in a loop, perform a remote wipe via Intune to return the device to a clean state. Re-register the hardware hash if necessary and reassign the device to the test group. Document the root cause of the failure and update the deployment profile to prevent recurrence. If the issue persists across multiple devices, escalate to Microsoft support with the collected diagnostic logs.
#Measurable Outcome
Success is defined by a 95% first-time completion rate for devices in the test group within the ESP timeout window. Measure the average time taken for devices to reach the desktop after power-on. Track the number of support tickets related to provisioning failures during the test phase. A successful outcome shows a reduction in manual intervention and consistent device configuration across the test group.
Review these metrics weekly during the test phase. If the completion rate falls below 95%, pause the rollout and investigate the root causes of failure. Adjust the deployment profile and app packages as needed before expanding the scope to additional devices.
#Operational Checklist
- Hardware hashes collected and imported into Intune.
- Test group created and devices assigned.
- Autopilot deployment profile configured and assigned to test group.
- Enrollment Status Page profile configured with appropriate timeout.
- Required applications deployed and detection rules verified.
- Network connectivity to Microsoft endpoints confirmed.
- Diagnostic logging enabled for test devices.
- Support channel established for test users.
#Pre-Implementation Permissions and Licensing Checks
Before registering a single hardware hash, confirm the role assignments held by the operator executing each phase. Autopilot device registration via Microsoft Graph requires the DeviceManagementServiceConfig.ReadWrite.All scope, whilst profile assignment and ESP configuration require DeviceManagementConfiguration.ReadWrite.All. Where a delegated administrator model is in use, confirm that the Intune Service Administrator role has not been scoped to exclude the target device group through administrative units. Licensing checks matter equally: confirm that each device or user account in the test group holds an eligible Microsoft Entra ID P1 licence and an Intune licence, as unlicensed accounts silently fail enrollment without a clear indication in the ESP progress bar. Record the licence SKU assignment method (group-based or direct) in the change record, since group-based licensing delays of up to several hours can be mistaken for provisioning failures.

#Change-Control Record Requirements
Each phase of the workflow should generate a discrete change record rather than a single blanket entry. Capture the Autopilot profile ID, ESP policy ID, target group object ID and the specific build number of Windows in use at the time of testing. Note the requester, approver and rollback owner separately, since the person executing a rollback under time pressure is frequently not the person who approved the original change. Store exported JSON definitions of the deployment profile and ESP policy alongside the change record using Get-MgDeviceManagementWindowsAutopilotDeploymentProfile or the equivalent Graph export, so that a prior configuration can be restored precisely rather than reconstructed from memory.
#Monitoring Signals Beyond Completion Rate
Completion rate alone masks intermittent degradation. Configure an Intune monitoring workbook query that tracks median and 95th-percentile ESP duration per day, not merely pass or fail counts. A rising 95th-percentile duration whilst the median remains stable typically indicates a subset of devices experiencing intermittent DNS resolution delays or throttling on a proxy server, rather than a systemic profile fault. Enable sign-in log correlation for the device join event in Microsoft Entra ID, filtering on the join type attribute, to distinguish devices that fail Entra join entirely from devices that join successfully but then fail during MDM enrollment or app installation. Where a network proxy performs TLS inspection, confirm that the required Microsoft endpoints are placed in a bypass list, as inspected certificates on these endpoints produce trust failures that present identically to genuine certificate misconfiguration in diagnostic logs.
#Escalation Thresholds
Define escalation thresholds before the test phase begins, not reactively once failures accumulate. A single isolated ESP failure within the test group warrants local investigation only. Three or more failures within a 24-hour window sharing the same failure phase (device setup, account setup, or app installation) should trigger escalation to the Intune platform owner, alongside a temporary pause on further device provisioning. Where failures span multiple device models or multiple network segments simultaneously, treat this as a tenant-level signal and escalate directly to Microsoft support rather than continuing local triage, since cross-segment failures often indicate a service-side throttling or certificate authority issue outside the operator’s configuration scope.
#Realistic Failure Symptoms and Their Likely Causes
Devices that stall at the account setup phase with no progress for an extended period frequently indicate a Microsoft Entra ID join failure caused by an expired or misconfigured Autopilot device registration, rather than an ESP timeout misconfiguration. Devices that complete Entra join but stall during app installation, particularly where the ESP progress bar remains static on a single application, commonly indicate a Win32 app detection rule that never evaluates as true, causing Intune to retry the installation indefinitely within the timeout window. Devices that complete provisioning successfully but subsequently show as non-compliant in the Intune console typically indicate a compliance policy assignment gap, where the compliance policy was not assigned to the same dynamic group used for the deployment profile. Cross-check group membership rules using Get-MgGroupMember against both the deployment profile assignment and the compliance policy assignment whenever this symptom appears.
#Expected Evidence at Each Checkpoint
At the hardware hash registration checkpoint, expected evidence includes a device entry visible under Windows enrollment devices with a populated serial number, manufacturer and model field within minutes of import. At the profile assignment checkpoint, expected evidence includes an assignment status of Assigned against the correct group object ID, confirmed via the Intune console or Graph query, not merely an absence of error during profile creation. At the ESP checkpoint, expected evidence includes sequential progress through device setup, account setup and app installation phases without any phase remaining static beyond five minutes without a status change. Absence of any of these evidentiary markers, rather than an explicit failure message, should be treated as sufficient grounds to halt further rollout pending investigation.
#Safe Rollback Actions
Where a deployment profile change is suspected as the root cause, revert the profile assignment to the previously exported JSON definition rather than attempting incremental corrections under time pressure. Reassign the prior profile version to the test group and confirm assignment status before resuming provisioning. Where an ESP timeout adjustment introduces new failures, restore the previously validated timeout value rather than extending it further, since extended timeouts frequently mask underlying app packaging faults rather than resolving them. Where app detection rule changes are implicated, remove the affected application from the mandatory assignment list entirely during rollback, provision a single test device to confirm stability without that application, then reintroduce a corrected detection rule in isolation before returning it to the mandatory set.
Related articles
Zero-Touch & Automation
From Ticket Rework to Repeatable Windows Autopilot Provisioning
Replace reactive Autopilot ticket rework with a bounded, staged zero-touch provisioning workflow: hash validation, guardrails, ESP checks and a clear rollback path.
DevOps & Automation
Designing a Bounded Recovery Plan for a GitHub Actions Deployment Workflow
How to design, validate and safely recover one bounded GitHub Actions deployment workflow, with explicit stop conditions, least-privilege security and a tested rollback path.
DevOps & Automation
Reliability Checks for a Bounded GitHub Actions Deployment Workflow
How to design, validate and safely recover a bounded GitHub Actions deployment workflow, with explicit evidence, observable checks and a bounded rollback path.
Discover more
Graduate Learning
Learn More About KBY
About KBY
Learn about our mission, editorial standards, and commitment to trusted engineering knowledge.
Why Trust KBY
Explore the processes and policies that ensure our publications are accurate, useful, and responsible.
Newsletter
Get our latest editorial publications, research and practical insights sent directly to your inbox.
Was this useful?
Operate smarter, with fewer recurring tickets.
Receive new operational playbooks, incident-prevention guidance, automation scripts and recovery runbooks.
Comments
Add a thoughtful note on Making Zero-Touch & Automation Repeatable with Windows Autopilot. Comments are checked for spam and held for moderation before appearing.