Windows Autopilot: User-Driven Entra Join
Zero-touch Out-of-Box Experience (OOBE) provisioning guide for enrolling Windows 10 & 11 devices directly into Microsoft Entra ID and Microsoft Intune.
Overview
Windows Autopilot User-Driven mode for Microsoft Entra ID enables zero-touch IT provisioning where end-users unbox a new OEM device, power it on, connect to Wi-Fi/Ethernet, and enter their corporate Microsoft 365 credentials.
During the Out-of-Box Experience (OOBE), the device automatically:
- Contacts the Microsoft Autopilot Deployment Service using its 4K Hardware Hash.
- Downloads the organization's customized Autopilot Deployment Profile and displays tenant branding.
- Automatically joins Microsoft Entra ID (cloud-native, no on-premises Active Directory line-of-sight required).
- Auto-enrolls into Microsoft Intune MDM.
- Runs the Enrollment Status Page (ESP) to enforce baseline security configurations, certificates, and core Win32 applications before granting desktop access.
---
When to Use
| Scenario | Recommendation | Technical Rationale |
|---|---|---|
| New OEM PCs (Remote / Hybrid Workers) | Highly Recommended | Laptops ship directly from vendor (Dell/HP/Lenovo) to user home without IT pre-staging. |
| Corporate Windows Devices (Wipe & Reload) | Recommended | After an Intune Wipe or Fresh Start, the device re-provisions seamlessly through Autopilot. |
| Shared / Kiosk PCs (No User Login) | Use Self-Deploying Mode | User-Driven requires end-user credentials; kiosks require TPM 2.0 Self-Deploying mode. |
| Hybrid Entra Joined (Require On-Prem AD) | Use Hybrid User-Driven | Requires Intune Connector for Active Directory and line-of-sight/VPN to Domain Controllers during OOBE. |
---
Prerequisites
Tenant & Licensing Requirements:
- Intune License: Microsoft 365 E3/E5, Microsoft 365 Business Premium, or Enterprise Mobility + Security (EMS E3/E5).
- Microsoft Entra ID P1 / P2: Required for MDM auto-enrollment and Conditional Access integration.
- MDM User Scope Configured: Navigate to Entra Admin Center > Mobility (MDM and WIP) > Microsoft Intune > Set MDM user scope to
Allor a target security group. - Company Branding Configured: Configured in Entra ID to show custom logos and banners during OOBE login.
Endpoint & Hardware Requirements:
- Windows 11 Pro/Enterprise (22H2+) or Windows 10 Pro/Enterprise.
- TPM 2.0 enabled in BIOS/UEFI.
- Unrestricted outbound access on ports 80 / 443 to:
*.manage.microsoft.comztd.events.data.microsoft.comlogin.microsoftonline.com
---
Portal Path
Microsoft Intune Admin Center (https://intune.microsoft.com)
└── Devices
└── Windows
└── Windows enrollment
├── Devices (Under Windows Autopilot)
├── Deployment Profiles
└── Enrollment Status Page (ESP)---
Step-by-Step Implementation
Step 1: Create a Dynamic Entra ID Device Group
Create a dynamic group targeting all Autopilot devices tagged with a specific Group Tag (OrderID):
- Navigate to Intune Admin Center > Groups > All groups > New group.
- Group type:
Security| Membership type:Dynamic Device. - Configure the dynamic query syntax:
(device.devicePhysicalIDs -any (_ -eq "[OrderID]:CorpWin11"))Step 2: Configure the Autopilot Deployment Profile
- Navigate to Devices > Windows > Windows enrollment > Deployment Profiles > Create Profile > Windows PC.
- Configure settings:
- Deployment mode:
User-Driven - Join to Microsoft Entra ID as:
Microsoft Entra joined - Microsoft Software License Terms:
Hide - Privacy settings:
Hide - User account type:
Standard(Recommended: Least privilege) - Apply device name template:
Yes> Template:CORP-%SERIAL%
- Assignments: Assign to group
Sec-Devices-Autopilot-Corporate-Win11.
Step 3: Configure Enrollment Status Page (ESP)
- Go to Windows enrollment > Enrollment Status Page > Edit Default profile.
- Set Show app and profile configuration progress:
Yes. - Set Block device use until all apps and profiles are installed:
Yes. - Select critical blocking apps (Defender, Company Portal, VPN client).
---
PowerShell Automation
Harvest Hardware Hash Locally at OOBE Screen (Shift + F10):
# Run in elevated Command Prompt / PowerShell at OOBE (Press Shift + F10)
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
# Install official Autopilot harvesting script from PSGallery
Install-Script -Name Get-WindowsAutoPilotInfo -Force
# Export Hardware Hash to CSV with specified GroupTag
Get-WindowsAutoPilotInfo.ps1 -OutputFile C:\HWID.csv -GroupTag "CorpWin11"Direct Online Upload from Endpoint to Intune Tenant:
# Directly uploads the hardware hash to tenant without using USB flash drives
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
Install-Script -Name Get-WindowsAutoPilotInfo -Force
Get-WindowsAutoPilotInfo.ps1 -Online -GroupTag "CorpWin11" -Assign---
Microsoft Graph Automation
Query Registered Autopilot Devices via Microsoft Graph PowerShell SDK:
# Connect to Microsoft Graph with required administrative permissions
Connect-MgGraph -Scopes "DeviceManagementServiceConfig.ReadWrite.All"
# Query Autopilot devices and their enrollment profile status
Get-MgDeviceManagementWindowsAutopilotDeviceIdentity -All |
Select-Object id, serialNumber, model, manufacturer, groupTag, enrollmentState |
Format-Table -AutoSize---
Verification Checklist
Diagnostic Logs & Channels
| Channel / Tool | Log Location | Purpose |
|---|---|---|
| MDM Diagnostics Tool | mdmdiagnosticstool.exe -area Autopilot;DeviceEnrollment -cab C:\Logs.cab | Gathers all MDM, Autopilot, and enrollment logs into a single CAB file. |
| Intune Management Extension (IME) | C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\IntuneManagementExtension.log | Essential for troubleshooting Win32 app deployments, detection rules, and scripts. |
| Event Viewer: Autopilot | Applications and Services Logs > Microsoft > Windows > ModernDeployment-Diagnostics-Provider > Autopilot | Records OOBE policy download, profile assignment, and stage transitions. |
| Registry Policy Path | HKLM\SOFTWARE\Microsoft\Provisioning\AutopilotPolicy | Inspects downloaded Autopilot policy settings and tenant registration flags. |
---
Troubleshooting Matrix
| Error Code / Symptom | Root Cause | Exact Resolution |
|---|---|---|
0x80180014 (Device not supported) | MDM User Scope is not targeted to the user, or Intune Enrollment Device Platform Restrictions block Windows (MDM). | 1. Go to Intune > Devices > Enrollment device platform restrictions. 2. Allow Windows (MDM). 3. Verify user has active Intune license in Entra ID. |
0x800705b4 (ESP Timeout / App failure) | An application set as "Blocking" in the Enrollment Status Page failed to install or timed out (default 60 mins). | 1. Review IntuneManagementExtension.log for failing App GUID.2. Change app install context from User to System or remove from ESP blocking list. |
80180005 (Device limit exceeded) | The user has reached the maximum number of registered devices in Entra ID (default is 50 devices). | Go to Entra Admin Center > Devices > Device Settings > Increase Maximum number of devices per user or delete stale devices. |
| Generic OOBE Login Screen (ZTDID mismatch) | Device hardware hash was not imported, or the Autopilot Profile is still in Assigning status. | Ensure profile status column shows Assigned. Press Shift+F10 and run Get-WindowsAutoPilotInfo.ps1 -Online -GroupTag CorpWin11 -Assign. |
---
Production Best Practices
OEM Reseller Direct Pre-Registration:
In enterprise production, never manually harvest CSV files with a USB drive. Require your OEM hardware reseller (Dell, Lenovo, HP, Insight) to register devices directly into your tenant using your Microsoft Cloud Solution Provider (CSP) partner relationship.
Autopilot Device Retirement Order:
When retiring or re-purposing an Autopilot PC, you MUST delete records in this exact 3-step sequence:
- Delete Intune MDM record (Intune > Devices > Windows > Delete).
- Delete Windows Autopilot Device identity (Intune > Windows enrollment > Devices > Delete).
- Delete Microsoft Entra ID Device record (Entra ID > Devices).
---
MD-102 Exam Notes
High-Frequency Exam Objectives & Traps:
- Dynamic Group Rule Syntax: In the Intune GUI, the property is called Group Tag, but in dynamic queries you must write
[OrderID]:
device.devicePhysicalIDs -any (_ -eq "[OrderID]:CorpWin11")
- Self-Deploying Mode vs User-Driven: Self-deploying requires a physical TPM 2.0 chip with device attestation and zero user interaction (ideal for Kiosks). User-Driven requires end-user credentials.
- Convert targeted devices to Autopilot: Automatically captures hardware hashes of existing enrolled Windows devices. It does not convert unmanaged BYOD devices until enrolled.
---