Practical Zero-Touch & Automation Controls for Windows Autopilot
Design, validate and roll back a bounded Windows Autopilot deployment pilot with scoped groups, ESP evidence checks and a tested recovery path.

This playbook covers
Table of Contents
Table of contents
#Current Method
Many teams provision Windows devices manually or through partially automated imaging, then apply configuration profiles after first sign-in. This creates a gap: devices exist in Microsoft Entra ID
The material assumption here is that Autopilot device records already exist (via manufacturer registration, reseller integration, or manual hardware hash import) and that the reader controls Intune and Entra ID role assignments in a tenant with an isolated pilot device group. If those assumptions do not hold in a specific environment, the steps below still apply but the group scope and evidence points must be re-verified locally.
#Improved Workflow
The improved workflow separates authoring, scoped assignment, device-side validation and staged rollout. Each step consumes a specific input and produces observable state change:
- Author the deployment profile in a test scope. Input: organisational OOBE requirements (device naming, user-driven vs self-deploying mode, ESP settings). Output: an unassigned or narrowly-scoped Autopilot deployment profile object in Intune. Trade-off: authoring in isolation delays visible progress but avoids exposing an unvalidated profile to production devices.
- Scope assignment to a pilot Entra ID device group. Input: a static or dynamic group containing only pilot hardware hashes. Output: profile assignment recorded against that group only. Trade-off: dynamic group membership rules add delay before assignment takes effect and must be accounted for in test timing.
- Validate ESP behaviour against a real or representative device. Input: a device performing OOBE with network access to Intune and Entra ID endpoints. Output: observable enrolment completion, application/policy tracking status in the ESP screen, and matching device compliance state in the Intune portal. This step exists because portal-side assignment success does not confirm client-side enrolment success.
- Expand scope incrementally. Input: validated pilot result. Output: assignment extended to a larger, still-bounded device group, with the same evidence checks repeated. The trade-off accepted is slower rollout in exchange for contained blast radius if a profile setting is wrong.
#Implementation
Prerequisites: Intune Administrator or equivalent custom RBAC role scoped to the pilot device group; Entra ID permission to read and assign group membership; a non-production or clearly isolated pilot device group; confirmed access to the Intune admin centre. Confirm current Intune service plan and licensing status before applying profile changes, as feature availability is version- and licence-sensitive and must be checked against the live tenant rather than assumed.
Ordered implementation:
- Confirm the pilot device group membership is limited to intended test hardware only. Expected evidence: group member count matches the pilot device inventory exactly.
- Create or edit the Autopilot deployment profile with the intended OOBE and ESP settings, without assigning it to any group yet. Expected evidence: profile exists in Intune > Devices > Enrollment > Windows Autopilotdeployment profiles with assignment status “Not assigned”.The KBY LexiconWindows AutopilotWindows Autopilot registers device hardware identity to a tenant so new or reset Windows devices self-configure via Entra ID join and Intune policy during first boot.
- Assign the profile to the pilot group only. Expected evidence: profile assignment status changes to reflect the pilot group name, and the Autopilot devices list shows the profile as “Assigned” for pilot device hardware hashes.
- Trigger or wait for OOBE on a pilot device and observe the ESP. Expected evidence: ESP shows device setup and app/policy installation phases completing without a stalled or failed status.
- Cross-check device compliance and enrolment state in Intune after OOBE completes. Expected evidence: device appears in Intune with status “Enrolled” and compliance state consistent with assigned compliance policy.
Stop condition: if the pilot device does not reach a completed ESP state within the organisation’s expected time window, or shows a failed app/policy install, halt further group expansion and move to the guardrails and recovery sections before reassigning to any additional device.
#Guardrails
Maintain least privilege by scoping the Intune role assignment to the pilot device group rather than granting tenant-wide Autopilot administration to every operator involved in testing. Keep the deployment profile unassigned from any “All devices” or broad dynamic group until pilot validation evidence is collected. Record who approved the profile change and when, since Autopilot profile changes affect any device that later matches the assigned group, including devices added after the initial test. Treat the residual risk explicitly: a dynamic group rule that is broader than intended can silently pull in unrelated devices, so static pilot groups are preferable during initial validation.
#Validation
Validation must rely on device-side evidence, not only portal configuration state. Confirm the deployment profile shows “Assigned” against the pilot group specifically, not a broader parent group. Confirm the ESP screen on the physical or virtual test device reports completed device setup, app installation and policy application phases without an unresolved spinner or error banner. Confirm the enrolled device object in Intune shows the expected profile name under Enrollment. Confirm compliance policy evaluation has run at least once and reports a defined compliance state, since an absent or “not evaluated” state indicates the device has not yet completed a full policy sync cycle.

#Common Mistakes
A frequent error is assigning the deployment profile to a broad group before pilot validation, which extends any misconfiguration to unrelated devices immediately. Another is confusing profile “Assigned” status in the portal with successful device-side enrolment; the two are not the same signal, and only device telemetry confirms the latter. Teams also sometimes skip confirming licence and service plan status before troubleshooting ESP failures, spending time on a workflow issue when the root cause is a licensing gap. Finally, using a dynamic group with an overly broad rule (for example, matching on device name pattern rather than hardware hash or explicit membership) can silently widen the blast radius of a pilot test.
#Recovery
If a pilot device fails ESP or receives an unintended profile, first reassign the deployment profile away from the affected group scope (or remove the specific device from the group) to stop further devices from being affected, rather than deleting the profile itself. Confirm no other production devices belong to the affected group before making this change. After reassignment, verify the target device no longer shows the retracted profile as pending on next check-in, and if the device already completed OOBE with unwanted settings, plan a controlled re-enrolment (wipe and re-provision) as a separate, deliberately scoped action rather than an emergency step taken without device backup
#Measurable Outcome
Baseline: record current manual provisioning time per device and the proportion of devices requiring a post-enrolment help desk ticket related to configuration. Success signal: pilot devices complete ESP and reach a defined compliance state without a help desk escalation, and elapsed time from OOBE start to enrolled/compliant state is at or below the previously recorded manual baseline. Measurement method: compare Intune enrolment timestamps and compliance evaluation timestamps against the recorded manual baseline for an equivalent sample size. Review cadence: reassess after every group expansion stage, and at minimum thirty days after the pilot group reaches its full intended size. Decision threshold: proceed to broader assignment only if the pilot group shows zero failed ESP completions and no unresolved compliance state after two consecutive review cycles; otherwise return to the implementation stage and adjust profile or group scope.
#Next Safe Decision and Adoption Checklist
- Pilot device group membership reviewed and limited to intended test hardware.
- Deployment profile authored and confirmed unassigned before first review.
- Profile assignment scoped only to the pilot group, with assignment status confirmed in the portal.
- At least one pilot device has completed ESP with observable, non-stalled evidence.
- Device compliance state confirmed as evaluated (not absent) after enrolment.
- Rollback path (group reassignment, not profile deletion) documented and tested on at least one device.
- Baseline and success threshold recorded before expanding beyond the pilot group.
- Second operator has independently verified the recovery step, if recovery was exercised.
#Diagnostic Log Collection and Monitoring
Before escalating any ESP stall, collect the MDM diagnostic report from the affected device using mdmdiagnosticstool.exe -area Autopilot;DeviceEnrollment;DeviceProvisioning -cab C:Diagautopilot.cab whilst still in OOBE where possible, or immediately after first sign-in. This produces event log extracts under the ModernDeployment-Diagnostics-Provider channel that record ESP phase transitions, tracked app/policy GUIDs and the timestamp each tracked item was marked complete. Cross-reference these against the Intune Enrollment Failures report and the Autopilot deployment report under Devices > Monitor, which surfaces per-device profile assignment timestamp, ESP phase reached and last contact time. A device stuck at the

#Required Permissions and Access Checks
Before collecting diagnostics, confirm the operator account holds at least the built-in Intune role permission Managed devices > Read and Enrollment programs > Read, since the Autopilot deployment report and Enrollment Failures report will return an empty result set rather than an explicit permission error if scope is missing, which is easily mistaken for a data gap. Where custom RBAC scoping is used, verify the pilot device group is included in the assigned scope tag; a device outside scope tag coverage will not appear in monitor views even though it enrolled successfully.
#“Device Preparation” phase for longer than the organisation’s expected window typically indicates a network path failure to required Microsoft Entra ID or Intune service endpoints, not a profile authoring fault, and should not trigger a profile rollback on its own.
#Change-Control Record Requirements
Every profile edit, group reassignment or scope expansion should generate a change record containing: the profile object name and internal ID, the group object ID (not just display name, since names can be reused), the operator identity making the change, a timestamp in UTC, and the specific setting delta applied. Store this alongside the pilot evidence collected in the Implementation section so that a later audit can correlate a specific ESP failure with the exact profile version in force at that time. Without an ID-based record, a display name rename or group recreation can make historical evidence unverifiable.
#Ongoing Monitoring Cadence
Once past pilot stage, schedule a recurring review of the Autopilot deployment report at an interval no longer than the organisation’s device refresh cycle, checking specifically for devices whose last contact time exceeds seven days post-enrolment with no compliance evaluation recorded. Configure an Intune notification or exported report query filtering on enrolment failure category so that a rising failure count across a broader group is visible before it accumulates into a large-scale help desk backlog.
#Escalation Thresholds
Escalate to a second operator or the Intune service owner when either of the following occurs: more than one pilot device in the same group shows an identical stalled ESP phase, indicating a systemic rather than device-specific fault; or a device’s diagnostic cab shows the tracked app/policy GUID reaching a completed state in the event log whilst the ESP screen itself still reports an in-progress status, since this mismatch points to a client-side reporting fault rather than a deployment fault and warrants vendor engagement rather than further profile changes.
#Safe Rollback During Monitoring
If monitoring reveals a systemic stall pattern after scope expansion, the safe action is to revert the affected group’s assignment to its prior validated profile version (retained from the change-control record) rather than removing the profile assignment entirely, which would leave devices unmanaged mid-enrolment. Confirm the reverted assignment has propagated by checking the assignment status timestamp updates before re-attempting OOBE on a representative device.
Related articles
Application Lifecycle
Practical Application Lifecycle Controls for macOS
Stage, validate and safely roll back macOS application deployments with named approval roles, evidence checks and a tested recovery path before fleet-wide promotion.
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.
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.
Discover more
Graduate Learning
Ops Playbook
Lexicon Definitions
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 Practical Zero-Touch & Automation Controls for Windows Autopilot. Comments are checked for spam and held for moderation before appearing.