This script uses WMI to retrieve properties needed for a customer to register a device with Windows Autopilot. Note that it is normal for the resulting CSV file to not collect a Windows Product ID (PKID) value since this is not required to register a device. Only the serial number and hardware hash will be populated.
This script has no dependencies.
Version 1.0: Original published version.
Version 1.1: Added -Append switch.
Version 1.2: Added -Credential switch.
Version 1.3: Added -Partner switch.
Version 1.4: Switched from Get-WMIObject to Get-CimInstance.
Version 1.5: Added -GroupTag parameter.
Version 1.6: Bumped version number (no other change).
Version 2.0: Added -Online parameter.
Version 2.1: Bug fix.
Version 2.3: Updated comments.
Version 2.4: Updated "online" import logic to wait for the device to sync, added new parameter.
Version 2.5: Added AssignedUser for Intune importing, and AssignedComputerName for online Intune importing.
Version 2.6: Added support for app-based authentication via Connect-MSGraphApp.
Version 2.7: Added new Reboot option for use with -Online -Assign.
Version 2.8: Fixed up parameter sets.
Version 2.9: Fixed typo installing AzureAD module.
Version 3.0: Fixed typo for app-based auth, added logic to explicitly install NuGet (silently).
Version 3.2: Fixed logic to explicitly install NuGet (silently).
Version 3.3: Added more logging and error handling for group membership.
Version 3.4: Added logic to verify that devices were added successfully. Fixed a bug that could cause all Autopilot devices to be added to the specified AAD group.