Update 8/1/2020: Microsoft has updated their official blog post a number of times since this post to include automated ways from Intune and ConfigManager.
We have published a number of posts about what Windows Autopilot is and how to setup and test. Now that so many organizations have taken note of Modern Device Management advantages they want to know how to include those devices into the Windows Autopilot.
It needs to be clarified that Modern Devices Management in the context of Windows Autopilot, is comprised of three parts:
- Device Registration
- Device Enrollment
- Device Provisioning
This article relates to step 1) for existing devices within an organization. Specifically the question it is trying to answer is:
Is there a way we can generate the IDs without someone sitting down in front of hundreds / thousand of individual machines and manually starting the PowerShell script?
Here is high level steps what I have seen done out there:
First, Download the Microsoft published Get-WindowsAutoPilotInfo PowerShell script.
Note: there are no specific dependencies needed to run the it works on Windows 10 and Windows 7 devices and it uses WMI to retrieve the information needed and it saves it to text file in csv format.
If you want to execute it everywhere, you will need to place the script on a network or shared location available to all target devices.
Alternatively you can prepare a software distribution package (in SCCM, Intune or similar) and deploy it to all target devices so it is present there.
Note: If you are trying to gather the hardware details remotely, you will need to make sure that the Windows Firewall enables access to WMI. You can do this via Group Policy or manually. – Source: Dec 17, 2017 blog post from Michael Niehaus
For each device you want to gather the Windows Autopilot Device ID, execute the PowerShell script to generate the file with the unique device information.
By default the script will create the file on the location you are executing this from, but you use the -output switch to redirect the file. Something like this:
Get-WindowsAutoPilotInfo.ps1 -OutputFile C:\Windows\Temp\MyComputer.csv Copy / rename each file into a central location on your network
You now have a csv file with device ID and related information on each device.
If you chose to keep the data on the individual devices, then you need to collect the data from it and move it into a central location. You now can do this with a copy / rename commands and/or execute it from “pull data” collection via SCCM .
Once you have collected the files for the devices you want, into a single location, the next step is to aggregate all the individual files into one single file: A PowerShell script to append files in directory should suffice.
Note: as of version 1.1. of the Autopilot Script, there was a -Append switch that if you use in combination with the -outputfile switch, you could save some time ** IMPORTANT: be aware of file locking!
Register the Devices
Final step is to import into the Windows Autopilot Device Registration dashboard. You can do this by going into the dashboard, device registration click on the upload a file, select the one single file you just created.
Devices have been registered, but have not yet been enrolled into Intune.
will still need to do “all things” Intune to the freshly register devices, but you do not have to do until you are ready to manage with MDM.
Alternatives and Improvements
- A great July 2018 blog post by Oliver Kieselbach, Automation of gathering and importing Windows Autopilot information shows a way to do this using Azure blob storage using AzCopy. Great read to automate the process – Nicely documented!
- Microsoft Documentation: Windows Autopilot for existing devices
- How to setup Windows AutoPilot and add existing devices the quickest way
- Automation of gathering and importing Windows Autopilot information – MSEndpointMgr
- AutoPilot for existing devices: Move from Windows 7 to modern Co-managed Windows 10 in a jiffy using ConfigMgr