Windows Autopilot User-Driven Enrollment in Microsoft Intune: A Step-by-Step Lab Guide

By Anup Moitra

Published on:

💻 Device Enrollment

The old way of setting up a corporate laptop meant IT manually imaging the device, installing applications one by one, joining it to a domain, and shipping or handing it to the user only after hours of preparation. Windows Autopilot replaces that entire process with something the user can do themselves, out of the box, just by signing in.

This guide walks through a real user-driven Autopilot enrollment from a Contoso Startup lab, covering hardware hash registration, deployment profile configuration, the out-of-box sign-in experience, and what actually happens when the device shows up in Intune. It also covers a real enrollment failure that came up during testing, not just the steps that worked on the first try.

1

What Windows Autopilot actually does

Windows Autopilot is a set of cloud-based technologies that takes a brand new or wiped Windows device and turns it into a fully enrolled, policy-compliant, work-ready machine, with the user doing nothing more than connecting to a network and signing in with their work account.

🖥️ The old way

IT receives the device, builds a custom image, installs applications manually, joins it to a domain, applies group policy, and ships or hands it to the user only after hours of preparation per machine.

☁️ The Autopilot way

The OEM or IT registers the device’s hardware hash once. The user unboxes the device, connects to Wi-Fi, signs in with their work account, and Intune handles Entra join, enrollment, policies, and apps automatically.

In this lab, the deployment mode used is user-driven, which means the device is associated with the specific user who signs in during setup. This is the most common Autopilot scenario for standard corporate laptops, as opposed to self-deploying mode, which is meant for shared or kiosk-style devices with no specific assigned user.

New device
Hardware hash registered
User signs in at OOBE
Entra join
Intune enrollment
Policies + apps applied
Ready for user

ℹ️ Beginner-friendly explanation: Think of the hardware hash as a fingerprint for the laptop. Once that fingerprint is registered in Intune, Windows recognises the device as belonging to your organisation the moment it is turned on, even before anyone signs in.


2

Prerequisites

Before starting the Autopilot lab, confirm the following are in place:

  • A Microsoft Intune or Microsoft 365 tenant with Autopilot licensing included
  • An appropriate Intune role, such as Intune Administrator or Policy and Profile Manager
  • A Windows 10 or Windows 11 device, real or virtual, that is not yet enrolled anywhere
  • Local administrator access on that device to run PowerShell and collect the hardware hash
  • A Microsoft Entra ID security group dedicated to Autopilot devices
  • A standard user account in Entra ID to sign in with during OOBE
  • Automatic MDM enrollment already enabled in Entra ID

ℹ️ Lab tip: A Hyper-V or other virtual machine works fine for this lab if you do not have a spare physical laptop. The hardware hash collection script works the same way on a VM, and resetting a VM back to OOBE is much faster than reimaging a physical device.


3

Confirm automatic MDM enrollment

Before Autopilot can work, Entra ID needs to know that signed-in users should automatically enroll their devices into Intune. Without this setting, a user can sign in during OOBE and the device will join Entra ID, but it will not enroll into Intune for management.

Step 1: Check the MDM user scope

In the Microsoft Entra admin center, navigate to:

📁 Identity → Mobility (MDM and MAM) → Microsoft Intune

Confirm the MDM user scope is set to Some or All. For a pilot lab, scope it to a specific group rather than All users.

SCREENSHOT PLACEHOLDER Entra admin center: Identity > Mobility (MDM and MAM) > Microsoft Intune, showing MDM user scope.
Replace this placeholder with your actual screenshot later.

💡 Why this matters: This is one of the most common reasons an Autopilot device joins Entra ID successfully but never appears as managed in Intune. Entra join and Intune enrollment are related but separate states, and this setting is the bridge between the two.


4

Prepare the Autopilot dynamic device group

Autopilot deployment profiles are assigned to a group, not to individual devices. The cleanest approach is a dynamic device group that automatically includes any device with an Autopilot enrollment profile assigned.

Create the dynamic device group

In the Microsoft Entra admin center, navigate to:

📁 Groups → New group
Group typeSecurity
Group nameGRP-Autopilot-Devices
Membership typeDynamic Device
Dynamic membership rule(device.devicePhysicalIDs -any (_ -contains "[ZTDId]"))
SCREENSHOT PLACEHOLDER Entra admin center showing the dynamic device group rule for Autopilot devices using the ZTDId attribute.
Replace this placeholder with your actual screenshot later.

ℹ️ What ZTDId means: ZTDId stands for Zero Touch Deployment ID. Every device registered in Windows Autopilot gets this identifier, and the dynamic rule above automatically captures any device that has gone through Autopilot registration, without needing to add devices to the group manually.


5

Collect the hardware hash

The hardware hash is a unique identifier generated from the device’s firmware. Microsoft, an OEM, or a CSP partner can supply this for new retail or enterprise purchases. For a lab environment, you collect it yourself using PowerShell.

Run the hash collection script

On the target Windows device, open PowerShell as Administrator and run:

Install-Script -Name Get-WindowsAutopilotInfo -Force
Get-WindowsAutopilotInfo -OutputFile C:\Autopilot\WINAUTO452-hash.csv

This generates a CSV file containing the device serial number, hardware hash, and product ID.

SCREENSHOT PLACEHOLDER PowerShell window showing Get-WindowsAutopilotInfo running successfully and the hash CSV file being created.
Replace this placeholder with your actual screenshot later.

💡 Run as Administrator: This script must run in an elevated PowerShell session. If it fails silently or returns no data, the most common cause is a non-elevated PowerShell window.


6

Import the hardware hash into Intune

With the CSV file ready, register the device in Intune’s Autopilot device list.

Step 1: Import the CSV

In the Microsoft Intune admin center, navigate to:

📁 Devices → Windows → Windows enrollment → Devices → Import

Select the CSV file generated in the previous step and upload it.

SCREENSHOT PLACEHOLDER Intune admin center: Devices > Windows > Windows enrollment > Devices, showing the Import option for the hardware hash CSV.
Replace this placeholder with your actual screenshot later.

Step 2: Sync and confirm the device appears

Click Sync to trigger Intune to process the import. This can take a few minutes. Refresh the Autopilot devices list to confirm WINAUTO452 appears with a status of registered.

SCREENSHOT PLACEHOLDER Autopilot devices list showing WINAUTO452 with serial number and registered status after import.
Replace this placeholder with your actual screenshot later.

ℹ️ Import delay: The import can show as processing for several minutes before the device appears in the list. This is normal and does not need to be repeated.


7

Create the Autopilot deployment profile

The deployment profile defines what happens during the out-of-box experience. This is where you choose user-driven mode, Entra join type, and the device naming convention.

Step 1: Create the profile

Navigate to:

📁 Devices → Windows → Windows enrollment → Deployment Profiles → Create Profile → Windows PC
SCREENSHOT PLACEHOLDER Intune admin center showing Deployment Profiles with Create Profile and Windows PC option highlighted.
Replace this placeholder with your actual screenshot later.

Step 2: Configure the OOBE settings

Profile nameAP-Profile-Contoso-UserDriven
Deployment modeUser-driven
Join typeMicrosoft Entra joined
Microsoft Software License TermsHide
Privacy settingsHide
User account typeStandard
Device name templateWINAUTO%RAND:3%
SCREENSHOT PLACEHOLDER Out-of-box experience tab showing user-driven mode, Microsoft Entra joined, and the device name template configured.
Replace this placeholder with your actual screenshot later.

✅ Why hide license terms and privacy settings: Hiding these screens shortens the OOBE flow for the end user. They are still accepted on the user’s behalf, but the user does not need to click through several extra screens before reaching their desktop.


8

Assign the deployment profile

Assign the profile to the dynamic Autopilot device group created in Section 4. Because the group is dynamic and based on the ZTDId attribute, the newly imported device should already qualify for membership.

Assign and confirm

  1. Open the deployment profile and select Assignments.
  2. Select Add groups and choose GRP-Autopilot-Devices.
  3. Save the assignment.
  4. Return to the Autopilot devices list and confirm the Profile status column shows Assigned for WINAUTO452.
SCREENSHOT PLACEHOLDER Deployment profile assignments tab showing the Autopilot device group selected.
Replace this placeholder with your actual screenshot later.
SCREENSHOT PLACEHOLDER Autopilot devices list showing WINAUTO452 with Profile status as Assigned.
Replace this placeholder with your actual screenshot later.

💡 Profile status stays Not assigned? This is the single most common stall point in an Autopilot lab. See Section 11 for exactly what to check.


9

The out-of-box sign-in experience

With the hash registered, the device in the group, and the profile assigned, reset or boot the target device to OOBE. This is where the user-driven experience actually shows itself.

What the user sees

  1. The device boots to a Windows setup screen and connects to a network.
  2. Because the device is recognised as an Autopilot device, it skips the standard consumer OOBE screens and goes straight to organisational sign-in.
  3. The user signs in with their work account, for example autopilotuser@contoso.onmicrosoft.com.
  4. The Enrollment Status Page (ESP) appears, showing progress as policies and apps install in the background.
  5. Once ESP completes, the user lands on a fully configured desktop.
SCREENSHOT PLACEHOLDER OOBE screen showing the organisational sign-in prompt with the Contoso branding before the user enters credentials.
Replace this placeholder with your actual screenshot later.
SCREENSHOT PLACEHOLDER Enrollment Status Page showing device setup progress with policies and apps being applied.
Replace this placeholder with your actual screenshot later.

ℹ️ What is actually happening behind ESP: While the user watches the progress bar, the device is being Entra joined, enrolled into Intune, and is downloading and applying the configuration profiles, compliance policies, and required apps assigned to it. This is the same work an IT technician used to do manually before handing over the laptop.


10

Verify the device in Intune

After the user reaches the desktop, confirm the device shows up correctly in Intune as corporate-owned, compliant, and enrolled.

📁 Devices → All devices → WINAUTO452
FieldExpected value
Managed byIntune
OwnershipCorporate
Join typeMicrosoft Entra joined
ComplianceCompliant (once the compliance policy evaluates)
Primary userThe account that signed in during OOBE
SCREENSHOT PLACEHOLDER Intune device overview for WINAUTO452 showing Managed by Intune, Ownership Corporate, and Entra join type.
Replace this placeholder with your actual screenshot later.

✅ This is the real proof point: a green checkmark in ESP tells you setup finished. The device record in Intune showing Corporate ownership and Intune management tells you the enrollment is actually correct, not just that the wizard completed.


11

Troubleshooting what actually went wrong

During this lab, the deployment profile initially stayed on Not assigned even after the assignment was saved, and the device’s MDM status briefly showed as None after the first Entra join attempt. Here is what was actually checked, in the order it was checked.

Profile status stuck on Not assigned

The dynamic device group had not finished evaluating membership for the newly imported device. Dynamic group membership calculation is not instant, it can take several minutes after a device is imported before the group rule picks it up.

💡 What fixed it: Waiting roughly 10 minutes and then triggering a sync on the Autopilot devices page resolved the assignment. For urgent lab testing, a small static group with the device added manually avoids this delay entirely.

MDM status showed None after Entra join

The device successfully joined Microsoft Entra ID during OOBE, but the device record in Intune briefly showed an MDM status of None instead of Intune MDM.

💡 What fixed it: This was confirmed to be the MDM user scope setting from Section 3 not yet applying to the test user’s group. Once the user account was confirmed to be inside the scoped group for automatic MDM enrollment, a re-attempt completed enrollment correctly.

What you seeMost likely causeWhat to check
Deployment profile stays Not assignedDynamic group has not finished evaluating the deviceWait several minutes, then sync the Autopilot devices list, or use a static group for urgent testing
OOBE shows standard consumer setup, not organisational sign-inHardware hash was not imported, or the device is not yet recognised as an Autopilot deviceConfirm the device appears in the Autopilot devices list before booting to OOBE
Device joins Entra ID but MDM status shows NoneMDM user scope does not include the signing-in userConfirm the user account is inside the scoped group for automatic MDM enrollment
ESP hangs on app or policy installationAssigned apps or policies have not finished deploying, or a dependency failedCheck Company Portal app status and the device’s policy check-in status in Intune
Device does not appear in Intune at allLicense assignment, MDM scope, or enrollment restrictions are blocking enrollmentConfirm Intune licensing is assigned to the user and enrollment restrictions allow the platform
MDM status: None
Join type: Microsoft Entra joined
Managed by: Not managed

This is exactly what an Entra-joined-but-not-yet-Intune-enrolled device looks like. It is a normal, fixable state, not a failed deployment, as long as the underlying MDM scope is corrected.


12

Summary

Windows Autopilot user-driven enrollment replaces hours of manual imaging and configuration with a process the end user completes themselves, just by signing in. The real value is not the OOBE wizard, it is everything Intune does automatically behind that progress bar: Entra join, MDM enrollment, corporate ownership, compliance evaluation, and app deployment.

🔑 Key takeaways

  • User-driven mode associates the device with whoever signs in at OOBE, the most common scenario for standard corporate laptops
  • The hardware hash is the device’s fingerprint and must be registered in Intune before Autopilot recognises it
  • Use a dynamic device group based on the ZTDId attribute so newly imported devices are automatically included
  • Automatic MDM enrollment scope in Entra ID must include the signing-in user, or the device will join Entra ID but never enroll into Intune
  • A deployment profile stuck on Not assigned is usually just dynamic group evaluation delay, not a configuration error
  • MDM status showing None after Entra join means the device joined identity but has not yet enrolled into management, these are separate states
  • The real proof of a working enrollment is the device record in Intune showing Corporate ownership and Intune management, not just a completed ESP screen
  • Always test with a pilot device and pilot user before relying on Autopilot for a wider rollout

Leave a Comment