Windows Autopilot is Microsoft’s zero-touch device provisioning tool. It enables organizations to preconfigure devices before delivery to end users. Autopilot automates device registration, Intune enrollment, and app, policy, and security baselines configuration.
Autopilot is essential for streamlining remote or distributed workforce deployment, enforcing security and compliance from first boot, and eliminating traditional imaging and manual setup.
How to prepare and provision with Windows Autopilot
Preparing and provisioning Microsoft Autopilot involves a series of steps, starting with the hardware hash collection needed for registration.
📌 Use Case: IT administrators and individual users looking to prepare and provision Microsoft Autopilot
📌 Prerequisites:
- Azure Active Directory (AAD) tenant with Microsoft Intune licenses
- Windows 10/11 Pro, Enterprise, or Education editions
- Devices with OEM-provided or captured hardware hashes
- Admin access to Microsoft Endpoint Manager Admin Center
📌 Recommended deployment strategies:
Part 1: Collecting hardware hash for registration
You need to get the Hardware ID manually for existing devices before provisioning.
📌 Prerequisite: Administrator privileges for PowerShell.
- Press Win, type PowerShell, then click Run as administrator.
- Copy and paste the following script into the prompt, then press Enter:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
New-Item -Type Directory -Path "C:\HWID"
Set-Location -Path "C:\HWID"
$env:Path += ";C:\Program Files\WindowsPowerShell\Scripts"
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Install-Script -Name Get-WindowsAutopilotInfo
Get-WindowsAutopilotInfo -OutputFile AutopilotHWID.csv
- Open Intune, press Devices > Windows > Windows enrollment > Devices.
- Click Import and upload the CSV file.
- Devices will appear as pending until registered with a profile.
💡 Tip: You can find the CSV file in C:\HWID with the filename AutopilotHWID.csv.
⚠️ Warning: Copy and paste the correct script for proper registration. (For more information, refer to: Things to look out for)
Part 2: Creating and assigning deployment profiles
After collecting the hardware ID, you can create and assign Autopilot deployment profiles.
Creating deployment profiles
To create an Autopilot deployment profile, follow the steps below:
- Sign in to the Microsoft Intune admin center.
- Select Devices > Windows > Enrollment > Deployment Profiles.
- Press the Create Profile drop-down menu and select Windows PC.
- Enter a profile name and description, then select Next.
- On the Out-of-box experience (OOBE) page, for Deployment mode, select User-driven.
- In the Join to Microsoft Entra ID as box, select Microsoft Entra joined.
- Configure the following options:
- Microsoft Software License Terms: Specify whether to show users the EULA (End-User License Agreement).
- Privacy settings: Option to show privacy settings to users or not.
- Hide change account options: Select Hide to prevent change account options from displaying on the company sign-in and domain error pages.
- User account type: Select the user’s account type (Administrator or Standard user).
- Allow pre-provisioned deployment: Selecting Yes allows pre-provisioning support.
- Language (Region): Select the language for the device.
- Automatically configure keyboard: Select Yes to skip the keyboard selection page if a language is selected.
- Apply device name template (requires Microsoft Entra join type): Select Yes to apply a naming template during device enrollment.
- Press Next, then select Selected groups on the Assign to drop-down menu.
- Click Select groups to include, then add the groups to include in the profile.
- Press Next, then click Create to make the profile.
Assigning deployment profiles
Windows Autopilot deployment profiles are assigned to devices via Intune. However, the assignment is not immediate. Several systems and conditions need to align for the process to complete.
To avoid failed or partial provisioning, confirm that the device has an assigned deployment profile:
- Sign in to the Microsoft Intune admin center.
- Navigate to:
- Devices > Windows > Windows enrollment > Devices
- Locate the device to which you assigned a profile.
- Monitor the Profile Status column. It should progress through these states:
- Unassigned → Assigning → Assigned
- Once the status is Assigned, click the device name to open its properties.
- Ensure the Date assigned field is populated.
- If it’s blank, wait for it to populate before deploying or resetting the device.
⚠️ Warning: Profile should be fully assigned before provisioning to ensure the device provisions properly. (For more information, refer to: Things to look out for)
Part 3: Provisioning with Windows Autopilot
After registering a device and assigning a profile, you can begin provisioning with Autopilot.
- Connect the device to the internet before turning it on.
- Press the Windows key five times on the Microsoft Entra sign-in page to open the “What do you want to do?” menu.
- Windows 10:
- Choose “Windows Autopilot provisioning”, then click Continue.
- Windows 11:
- Choose “Pre-provision with Windows Autopilot”, then click Next.
- Windows 10:
- You should now notice a screen showing:
- Organization name
- Autopilot deployment profile name
- QR code
- Click Provision (Windows 10) or Next (Windows 11) to start.
- The Enrollment Status Page (ESP) will appear after the reboot. It will go through:
- Device preparation (Device ESP)
- Device setup (Device ESP)
- Account setup (User ESP)
- Each phase installs policies, apps, and configurations defined in the Autopilot profile and Intune.
- Once setup is complete, you’ll spot a summary/status screen:
- Success: Click Reseal to shut down the device and return it to the end user’s OOBE mode.
- Failure: Follow troubleshooting guidance based on the error displayed.
⚠️ Warning: The device can’t download the Windows Autopilot profile without network connectivity. (For more information, refer to: Things to look out for)
Part 4: Verifying and tweaking the registry
You can verify Autopilot’s profile and enrollment status in the registry.
- Press Win + R, type regedit, then press Enter.
- Navigate to:
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Provisioning\Diagnostics\AutoPilot
- Check the following values:
- CloudAssignedAadServerData and CloudAssignedTenantDomain: These values are blank if the device isn’t registered with Autopilot.
- IsAutoPilotEnabled: If set to 1, this value indicates the device is registered with Windows Autopilot.
Troubleshooting and resetting with the Registry Editor
Once you’ve set up your profile, you can use the Registry Editor to troubleshoot or reset Autopilot behavior.
📌 Use Case: IT administrators and individual users who want to troubleshoot or reset Autopilot behavior
- Press Win + R, type regedit, then press Enter.
- Copy and paste the following:
- Force re-run out-of-box experience (if device is already provisioned):
sysprep /oobe /reboot
- Wipe device and retain Autopilot registration:
systemreset -factoryreset
- Reset and force Autopilot reprovisioning by using Intune:
- Navigate Devices > Select Device > Fresh Start or Autopilot Reset
- Force re-run out-of-box experience (if device is already provisioned):
PowerShell automation and validation
You can use PowerShell to automate and validate Autopilot scenarios such as re-registering a device, checking the assigned Autopilot profile, wiping and redeploying a device, or manually initiating device preparation.
📌 Use Case: IT administrators and individual users who want to automate and validate Autopilot scenarios
📌 Prerequisites: WindowsAutopilotIntune module and administrator privileges
- Press Win, type PowerShell, then right-click and select Run as administrator.
- Download the WindowsAutopilotIntune module by copying and pasting the following script, then hitting Enter:
- Install-Module -Name WindowsAutoPilotIntune -RequiredVersion 5.6
- Copy-paste the following scripts into the prompt, then press Enter:
- Re-register device with existing profile:
Get-WindowsAutopilotInfo.ps1 -Online
- Check assigned Autopilot profile:
Get-AutopilotProfileAssignedStatus
- Wipe and redeploy:
Invoke-AutopilotReset
- Manually initiate device preparation:
Initialize-AutopilotDevice
- Re-register device with existing profile:
Hybrid joining and enrollment syncing using GPO
Group Policy enables automatic MDM enrollment for domain-joined devices during Hybrid Azure AD Join with Autopilot.
📌 Use Case: Organizations that want their devices to be domain-joined, registered with Azure AD, and automatically enrolled in Intune during Autopilot provisioning.
- Press Win + R, type gpmc.msc, then press Enter to open the Group Policy Management Console.
- You can create a new GPO by right-clicking the domain or organizational unit (OU) and selecting “Create a GPO in this domain, and Link it here…”
- Name it MDM Auto Enrollment.
- Right-click the new GPO, then click Edit.
- Navigate the following path:
- Computer Configuration > Administrative Templates > Windows Components > MDM
- Double-click Enable automatic MDM enrollment using default Azure AD credentials, then set it to Enabled.
💡 Additional notes:
- Ensure devices are domain-joined and that the Service Connection Point is configured.
- Use Azure AD Connect to sync devices into AAD.
- Devices receive the Autopilot profile after they reboot and connect to Microsoft servers.
⚠️ Things to look out for
| Risks | Potential Consequences | Reversals |
| Incorrect script syntax | The device may not register or show up in Intune or AAD. | Check the PowerShell for any error messages. If there are, re-check the script for syntax errors before rerunning it. |
| Profile not fully assigned before provisioning starts | The device may not provision correctly or could skip Autopilot OOBE. | Wait until the profile is assigned and use Intune to confirm that the Date assigned field is populated. |
| No network connectivity during provisioning | The device may not download the Windows Autopilot profile. | Plug the device into a network or connect to the Wi-Fi on the “Let’s connect you to a network” screen. |
Troubleshooting Windows Autopilot preparation and provisioning issues
Below are typical preparation and provisioning issues and how to fix them:
Device doesn’t show Autopilot profile
A device incorrectly registered with the organization’s Microsoft 365 tenant may not display an Autopilot profile. You can remedy this by re-running the PowerShell script to regenerate and re-upload the CSV. You can also validate that the device shows up by going to Azure Active Directory > Devices in the Azure AD portal.
Intune enrollment fails during ESP.
If Intune enrollment fails during ESP, it’s likely due to license assignment or network and connectivity issues. Ensure the end-user has a Microsoft Intune license and an Azure AD Premium P1 or P2 license.
💡 Tip: You can validate license status by visiting Microsoft 365 Admin Center > Users > Active Users.
Hybrid join delays
The main reason for hybrid join delays is SCP (Service Connection Point) misconfiguration.
- Check join status by opening Command Prompt as admin and running:
dsregcmd /status
- Confirm the following:
- AzureAdJoined = YES
- DomainJoined = YES
- TenantName matches your organization
💡 Tip: You can check the following log files for a deeper dive into the issue:
- C:\Windows\Panther\UnattendGC\setupact.log
- C:\Windows\Provisioning\AutopilotDiagnostics
- Event Viewer > Applications and Services Logs > Microsoft > Windows > Provisioning-Diagnostics-Provider
NinjaOne services to complement Windows Autopilot
NinjaOne enhances provisioning and onboarding with robust monitoring, automation, and visibility tools.
| NinjaOne service | Description | How it complements Autopilot |
| Monitoring enrollment health | Real-time tracking of the provisioning process during Windows Autopilot setup. |
|
| Custom scripting | Custom scripting executes PowerShell scripts or registry-based modifications to configure Autopilot profiles or devices. |
|
| Device inventory insights | Gathers, classifies, and analyzes endpoint data to understand how devices are provisioned, configured, and managed. |
|
| Automated compliance checks | Detect mismatched profiles or failed Intune/MDM enrollment. |
|
| Reporting | Correlate Autopilot provisioning status with endpoint health and patch state. |
|
Streamline deployment with Windows Autopilot
Windows Autopilot streamlines zero-touch device provisioning, while NinjaOne enhances the process with advanced monitoring, automation, and compliance tools. Autopilot and NinjaOne enable secure, scalable, and efficient device onboarding, making them ideal for IT teams managing remote or hybrid environments.
Related topics:
- How to Obtain a Hardware Hash for Microsoft 365 Devices
- Comprehensive Strategies to Obtain a Hardware Hash for Microsoft 365
- What Is Zero Touch Provisioning (ZTP)?
Quick-Start Guide
NinjaOne does support Windows Autopilot device preparation and provisioning. Specifically:
- NinjaOne provides Intune deployment instructions for Windows Autopilot, with an important note about app installation:
- Per Microsoft documentation, you can mix Win32 and line-of-business apps during Windows Autopilot device preparation
- It’s recommended to deploy the NinjaOne agent as a Line of Business (LOB) application in Intune
- The documentation provides a detailed guide for installing the NinjaOne agent via Intune during Windows Autopilot enrollment, including:
- Preparing the MSI file
- Adding the NinjaOne agent as a Line of Business application
- Configuring app information
- Assigning the application to devices or users
So yes, NinjaOne can help with preparing and provisioning devices using Windows Autopilot, offering a streamlined approach to device management and enrollment.
