 {"id":520688,"date":"2025-06-19T15:18:00","date_gmt":"2025-06-19T22:18:00","guid":{"rendered":"https:\/\/jorgep.com\/blog\/?p=520688"},"modified":"2026-05-11T15:31:57","modified_gmt":"2026-05-11T22:31:57","slug":"windows-autopilot-moving-to-v2-device-preparation","status":"publish","type":"post","link":"https:\/\/jorgep.com\/blog\/windows-autopilot-moving-to-v2-device-preparation\/","title":{"rendered":"Windows Autopilot: Moving to v2 (Device Preparation)"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>Checkout my other blogs about <a href=\"https:\/\/jorgep.com\/blog\/tag\/windows-autopilot\/\">Windows Autopilot <\/a><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>For years, IT administrators have relied on Windows Autopilot to transform &#8220;off-the-shelf&#8221; hardware into fully managed corporate machines. However, the landscape has shifted. Microsoft has introduced a re-architected version, commonly referred to as <strong>Autopilot v2<\/strong> (officially known as <strong>Windows Autopilot Device Preparation<\/strong>), to address long-standing pain points regarding speed, reliability, and the hassle of hardware hashes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Timeline: A Tale of Two Versions<\/h2>\n\n\n\n<p>Understanding where we are requires looking at where we started. Microsoft has maintained a steady cadence of innovation in the deployment space:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Windows Autopilot (v1):<\/strong> Generally Available (GA) in <strong>late 2017<\/strong>. It revolutionized the &#8220;imaging&#8221; process by replacing it with &#8220;provisioning.&#8221;<\/li>\n\n\n\n<li><strong>Windows Autopilot Device Preparation (v2):<\/strong> Generally Available (GA) in <strong>May 2024<\/strong>. This version was built from the ground up to utilize modern cloud-native enrollment flows.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Comparison: v1 vs. v2<\/h2>\n\n\n\n<p>While both aim to get a user to a productive desktop, the underlying plumbing is very different.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td><strong>Feature<\/strong><\/td><td><strong>Classic Autopilot (v1)<\/strong><\/td><td><strong>Device Preparation (v2)<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>Registration<\/strong><\/td><td>Requires Hardware Hash (CSV\/OEM)<\/td><td>None (or Corporate Identifiers)<\/td><\/tr><tr><td><strong>Identity Support<\/strong><\/td><td>Entra ID or Hybrid Join<\/td><td><strong>Entra ID Join only<\/strong><\/td><\/tr><tr><td><strong>OS Requirement<\/strong><\/td><td>Windows 10 &amp; 11<\/td><td><strong>Windows 11 only<\/strong> (22H2+)<\/td><\/tr><tr><td><strong>Reporting<\/strong><\/td><td>Basic status in Intune console<\/td><td>Near real-time deployment tracking<\/td><\/tr><tr><td><strong>Deployment Logic<\/strong><\/td><td>Device-based targeting<\/td><td>User-based targeting<\/td><\/tr><tr><td><strong>App Limit<\/strong><\/td><td>No hard limit (often slow)<\/td><td>Optimized for up to 25 &#8220;essential&#8221; apps<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">What is the Corporate Identifier List?<\/h2>\n\n\n\n<p>One of the biggest hurdles in v1 was the &#8220;Hardware Hash&#8221;\u2014a 4,000-character string unique to the motherboard. v2 eliminates the mandatory requirement for this hash.<\/p>\n\n\n\n<p>To ensure security and block personal devices (BYOD) from enrolling, IT admins now use the <strong>Corporate Identifier List<\/strong>. Instead of a complex hash, you identify corporate hardware using three simple strings often found on the shipping manifest or the device box:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Manufacturer<\/strong> (e.g., <em>Dell Inc.<\/em>)<\/li>\n\n\n\n<li><strong>Model<\/strong> (e.g., <em>Latitude 7440<\/em>)<\/li>\n\n\n\n<li><strong>Serial Number<\/strong> (e.g., <em>ABC1234<\/em>)<\/li>\n<\/ol>\n\n\n\n<p>When a user signs in, Intune checks these three pieces of data. If they match your list, the device is flagged as &#8220;Corporate&#8221; and allowed to proceed with the v2 workflow.<\/p>\n\n\n\n<p>There is a way to import a CSV file into this section of the portal: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Open the <strong>Microsoft Intune admin center<\/strong>.<\/li>\n\n\n\n<li>Navigate to <strong>Devices<\/strong> &gt; <strong>Enrollment<\/strong>.<\/li>\n\n\n\n<li>Select <strong>Corporate device identifiers<\/strong>.<\/li>\n\n\n\n<li>Click <strong>Add<\/strong> &gt; <strong>Upload CSV file<\/strong>.<\/li>\n\n\n\n<li>Browse for your file and click <strong>Add<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p>SAMPLE CSV FILE: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dell Inc.,Latitude 7440,ABC1234\nMicrosoft,Surface Laptop 6,0123456789\nLenovo,ThinkPad T14,XYZ5678<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>No Headers:<\/strong> Do not include a row for &#8220;Manufacturer&#8221; or &#8220;Model&#8221; at the top.<\/li>\n\n\n\n<li><strong>Three Columns:<\/strong> Each line must contain exactly three values in this order: <strong>Manufacturer<\/strong>, <strong>Model<\/strong>, and <strong>Serial Number<\/strong>.<\/li>\n\n\n\n<li><strong>Plain Text:<\/strong> Save the file as a standard <code>.csv<\/code> (Comma Separated Values).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Can They Coexist?<\/h2>\n\n\n\n<p>The short answer is <strong>yes<\/strong>. You do not need to switch your entire organization to v2 overnight. Many enterprises are currently running both versions simultaneously.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Priority Hierarchy<\/h3>\n\n\n\n<p>When a user signs into a new Windows 11 device, Intune looks for instructions in a specific order to decide which &#8220;lane&#8221; to put the device in:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td><strong>Priority<\/strong><\/td><td><strong>Scenario<\/strong><\/td><td><strong>Outcome<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>1<\/strong><\/td><td>Hardware Hash is registered in the v1 service<\/td><td><strong>Classic Autopilot (v1) wins<\/strong><\/td><\/tr><tr><td><strong>2<\/strong><\/td><td>No Hash found + User is assigned a v2 Policy<\/td><td><strong>Device Preparation (v2) wins<\/strong><\/td><\/tr><tr><td><strong>3<\/strong><\/td><td>No Hash + No v2 Policy<\/td><td>Standard MDM Enrollment<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading520688_0168ed-4b, .wp-block-kadence-advancedheading.kt-adv-heading520688_0168ed-4b[data-kb-block=\"kb-adv-heading520688_0168ed-4b\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading520688_0168ed-4b mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading520688_0168ed-4b[data-kb-block=\"kb-adv-heading520688_0168ed-4b\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading520688_0168ed-4b img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading520688_0168ed-4b[data-kb-block=\"kb-adv-heading520688_0168ed-4b\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<p class=\"kt-adv-heading520688_0168ed-4b wp-block-kadence-advancedheading has-theme-palette-15-background-color has-background\" data-kb-block=\"kb-adv-heading520688_0168ed-4b\"><em><strong>Important Note:<\/strong> If you want a device to use the new v2 experience, you <strong>must<\/strong> ensure its hardware hash has been deleted from (or was never uploaded to) the classic Autopilot registration list.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading520688_24125b-32, .wp-block-kadence-advancedheading.kt-adv-heading520688_24125b-32[data-kb-block=\"kb-adv-heading520688_24125b-32\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading520688_24125b-32 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading520688_24125b-32[data-kb-block=\"kb-adv-heading520688_24125b-32\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading520688_24125b-32 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading520688_24125b-32[data-kb-block=\"kb-adv-heading520688_24125b-32\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading520688_24125b-32 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading520688_24125b-32\">Script to Delete Windows Autopilot v1 Device Entries<\/h2>\n\n\n\n<p>To delete Windows Autopilot (v1) entries from your tenant, you can use the <strong>Microsoft Graph Intune<\/strong> PowerShell module. This script targets the hardware hashes registered in the classic Autopilot service to &#8220;clear the lane&#8221; for Autopilot v2.<\/p>\n\n\n\n<p>SAMPLE <strong>PowerShell Script: Remove Autopilot v1 Device Entries<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># SAMPLE SCRIPT  USE AT YOUR OWN RISK   -  MODIFY AS NEEDED!\n# 1. Install and Import the necessary module\nif (-not (Get-Module -ListAvailable Microsoft.Graph.DeviceManagement.Enrollment)) {\n    Install-Module Microsoft.Graph.DeviceManagement.Enrollment -Scope CurrentUser -Force\n}\n\nConnect-MgGraph -Scopes \"DeviceManagementServiceConfig.ReadWrite.All\"\n\n# 2. Get all registered Autopilot devices\n$autopilotDevices = Get-MgDeviceManagementWindowsAutopilotDeviceIdentity\n\nif ($autopilotDevices) {\n    foreach ($device in $autopilotDevices) {\n        Write-Host \"Deleting Device: $($device.SerialNumber) - ID: $($device.Id)\" -ForegroundColor Cyan\n        \n        # 3. Remove the device entry\n        Remove-MgDeviceManagementWindowsAutopilotDeviceIdentity -WindowsAutopilotDeviceIdentityId $device.Id\n    }\n    Write-Host \"Cleanup complete.\" -ForegroundColor Green\n} else {\n    Write-Host \"No Autopilot v1 entries found.\" -ForegroundColor Yellow\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Important Considerations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Permissions:<\/strong> You must have <strong>Intune Administrator<\/strong> or <strong>Global Administrator<\/strong> rights to execute these changes.<\/li>\n\n\n\n<li><strong>The &#8220;v1 Win&#8221; Rule:<\/strong> Remember that if a hardware hash exists in the v1 service, it will always take priority over a v2 (Device Preparation) policy. Running this script is a common step when migrating a pilot group from v1 to v2.<\/li>\n\n\n\n<li><strong>Sync Time:<\/strong> After running the script, it may take a few minutes for the Intune portal to reflect that the devices are gone.<\/li>\n\n\n\n<li><strong>Targeted Deletion:<\/strong> If you only want to delete <em>specific<\/em> devices rather than wiping the whole list, you can filter the <code>$autopilotDevices<\/code> variable by <code>SerialNumber<\/code> or <code>GroupTag<\/code>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Why this is necessary for v2<\/h3>\n\n\n\n<p id=\"p-rc_27bd89b94b35296f-84\">Autopilot v2 (General Availability May 2024) is designed to be &#8220;hash-less&#8221;<sup><\/sup>. If you are moving toward using <strong>Corporate Identifiers<\/strong> (Manufacturer, Model, and Serial Number), the presence of the old v1 hardware hash will &#8220;hijack&#8221; the enrollment process and prevent the newer v2 logic from triggering<sup><\/sup>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Verdict: Which should you use?<\/h2>\n\n\n\n<p>If you are a cloud-first organization moving exclusively to Windows 11 and Entra ID Join, <strong>Autopilot v2<\/strong> is the superior choice due to its speed and the removal of hardware hash management.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>However, if you still require <strong>Hybrid Join<\/strong>, <strong>Self-Deploying Mode<\/strong> (for kiosks), or <strong>Pre-provisioning<\/strong> (White Glove), you must continue to use <strong>v1<\/strong> for those specific use cases for now.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Checkout my other blogs about Windows Autopilot For years, IT administrators have relied on Windows Autopilot to transform &#8220;off-the-shelf&#8221; hardware into fully managed corporate machines. However, the landscape has shifted. Microsoft has introduced a re-architected version, commonly referred to as Autopilot v2 (officially known as Windows Autopilot Device Preparation), to address long-standing pain points regarding&#8230;<\/p>\n","protected":false},"author":2,"featured_media":519281,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","ngg_post_thumbnail":0,"episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[681,441],"tags":[742,782],"class_list":["post-520688","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-moderneuc2","category-tech-talk","tag-moderneuc1","tag-windows-autopilot"],"taxonomy_info":{"category":[{"value":681,"label":"ModernEUC"},{"value":441,"label":"Tech Talk"}],"post_tag":[{"value":742,"label":"ModernEUC"},{"value":782,"label":"Windows Autopilot"}]},"featured_image_src_large":["https:\/\/jorgep.com\/blog\/wp-content\/uploads\/Featured-WindowsAutopilot.jpg",1024,512,false],"author_info":{"display_name":"Jorge Pereira","author_link":"https:\/\/jorgep.com\/blog\/author\/jorge\/"},"comment_info":0,"category_info":[{"term_id":681,"name":"ModernEUC","slug":"moderneuc2","term_group":0,"term_taxonomy_id":691,"taxonomy":"category","description":"","parent":0,"count":267,"filter":"raw","cat_ID":681,"category_count":267,"category_description":"","cat_name":"ModernEUC","category_nicename":"moderneuc2","category_parent":0},{"term_id":441,"name":"Tech Talk","slug":"tech-talk","term_group":0,"term_taxonomy_id":451,"taxonomy":"category","description":"","parent":0,"count":702,"filter":"raw","cat_ID":441,"category_count":702,"category_description":"","cat_name":"Tech Talk","category_nicename":"tech-talk","category_parent":0}],"tag_info":[{"term_id":742,"name":"ModernEUC","slug":"moderneuc1","term_group":0,"term_taxonomy_id":752,"taxonomy":"post_tag","description":"","parent":0,"count":292,"filter":"raw"},{"term_id":782,"name":"Windows Autopilot","slug":"windows-autopilot","term_group":0,"term_taxonomy_id":792,"taxonomy":"post_tag","description":"","parent":0,"count":24,"filter":"raw"}],"_links":{"self":[{"href":"https:\/\/jorgep.com\/blog\/wp-json\/wp\/v2\/posts\/520688","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jorgep.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jorgep.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jorgep.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jorgep.com\/blog\/wp-json\/wp\/v2\/comments?post=520688"}],"version-history":[{"count":3,"href":"https:\/\/jorgep.com\/blog\/wp-json\/wp\/v2\/posts\/520688\/revisions"}],"predecessor-version":[{"id":520692,"href":"https:\/\/jorgep.com\/blog\/wp-json\/wp\/v2\/posts\/520688\/revisions\/520692"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jorgep.com\/blog\/wp-json\/wp\/v2\/media\/519281"}],"wp:attachment":[{"href":"https:\/\/jorgep.com\/blog\/wp-json\/wp\/v2\/media?parent=520688"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jorgep.com\/blog\/wp-json\/wp\/v2\/categories?post=520688"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jorgep.com\/blog\/wp-json\/wp\/v2\/tags?post=520688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}