I was recently doing some testing on self-driven AutoPilot provisioning and noticed some interesting behaviour. I was having troubles with the provisioning process with one of the Windows 10 machines I was given to test with (Dell Inspiron 13 5378 for the record), and it had an out of date OS, thanks Silvan ;-). Anyway, self driven Autopilot needs Windows 1903 (as well as other prerequisites) so I updated OS, and as the drivers were also well out of date I decided to update them also while I was at it.
Now, previously I had uploaded the device ID to intune and deployed an AutoPilot profile to the device successfully, however once I had updated the OS and drivers I noticed that the Autopilot profile wasn’t applying and the device was going to the normal OOBE. What I haven’t mentioned is that along with the device drivers was a BIOS update, so I believe flashing the BIOS changed the hardware ID of the device, which makes sense. To confirm this I removed the existing device from Intune and generated the device ID CSV from the device again with the Get-WindowsAutoPilotInfo PowerShell script, uploaded it and assigned the autopilot profile to it, and it worked.
To be fair, Microsoft kind of explain this here, stating “substantial changes to the hardware, such as a motherboard replacement, would not match, so a new hash would need to be generated and uploaded.” However, I simply haven’t been in a situation to come across this before, so thought it would be a good call out to post.
Additionally on a related note, with regards to the device ID generation, note also that the device id generated also contains details about when it was generated, so it will change each time it is generated.