Everyone who has enrolled a few devices with autopilot in his life and has encountered errors knows the problem that it can quickly be very cumbersome to find the problem why an enrolment fails. Especially when it comes to network endpoints that are not reachable it can be very time consuming to find them. To enroll a device with autopilot there are also some prerequisites that have to be fulfilled. To check this before the enrollment I have created a script that helps you to check these requirements.

Prerequisites
There is a very long Microsoft docs article that explains what network endpoints need to be reached to enroll a device but also to use services like delivery optimization and co. You can find the article at the following link. In addition to this, autopilot is only supported on the following Windows versions:
- Windows 10 Pro
- Windows 10 Pro Education
- Windows 10 Pro for Workstations
- Windows 10 Enterprise
- Windows 10 Education
What does the script provide?
You will get an overview of various attributes that are worth looking at before enrollment. First you get general device info’s to check e.g. which Windows edition is installed or if the device has a TPM.

Next you get adapter information to see which NIC is installed on the device and which IP address it has.

Now comes the exciting part. In this part I make connection tests on different URLS which are important for an autopilot enrollemt. For each url you will get a status.

How to use the script
- Press Shift + F10 during the OOBE phase to open a CMD (mostly you have to press the fn key)

- Type in powershell

- Run the following command and approve with Y/A:
Install-Script -Name Check-AutopilotPrerequisites

- Change the execution policy that you can run the script:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
- Run the script with Check-AutopilotPrerequisites.ps1

Conclusion
If you have any ideas how I can extend or improve the script then let me know I’ll be more than happy to incorporate this. You can find the source code at the following link. Hope I could help you with this script. Have fun with it.
Stay healthy, Cheers
Jannik
Perhaps you could include a connection check to time.windows.com
LikeLike
Thanks for the hint is added
LikeLike
[…] https://jannikreinhard.com/2022/08/24/check-autopilot-enrollment-prerequisite/ […]
LikeLike
Awesome script! Thanks for that! One additional point which may make sense also to check is if the (Get-TpmEndorsementKeyInfo).ManufacturerCertificates is empty AutoPilot will also fail as its needed (at least for WhiteGlove) to secure some things in the pre-provisioning steps.
LikeLike
Let me check this
LikeLike
smal bug > winODws Version and Install Date
LikeLike