Windows Autopilot

Get Autopilot for Existing Devices to skip the region page

In an Autopilot user-driven AAD join deployment profile, you can configure it to specify the “Language (Region)” and as long as there is network connectivity (e.g. a wired device), that will work just fine. You can specify “Operating system default” for it to choose the default, or you can specify an explicit language, e.g. “English (United States)”.

Weirdly though, this doesn’t work when using Windows Autopilot for Existing Devices (thanks to Johan Arwidmark for pointing that out, I hadn’t noticed that before). When you convert the profile above to an AutopilotConfigurationFile.json equivalent, it will supress the language and keyboard choices, but it will still prompt for the region. 

So what’s up with that? Looking at a device that is being deployed with an AutopilotConfigurationFile.json, you can see an event logged that the CloudAssignedRegion value was not found:

Interesting, especially since the Autopilot for existing devices documentation does not mention that CloudAssignedRegion property even exists. (That’s especially interesting since I wrote the bulk of that documentation. Deja vu.) Looking at a registered device, I can see that the CloudAssignedRegion property is set to the same value as the language (even though the Intune UI only shows one property, it sets both to the same thing):

OK, that should be easy to fix, we just need to change the WindowsAutopilotIntune module’s ConvertTo-AutopilotConfigurationJSON cmdlet to set the CloudAssignedRegion any time the CloudAssignedLanguage is set. I’m sure we could probably pull that off in a few months if we tried to get Microsoft to do that, but there’s a faster and more convenient way: The WindowsAutopilotIntuneCommunity module. Andrew Taylor created a fork of the Microsoft module that can be maintained by the community. The source can be found on GitHub, and the module itself is published on the PowerShell Gallery as an easy drop-in replacement to the “official” module that has been somewhat ignored over the past few years. So I submitted a pull request to make a one-line change to the ConvertTo-AutopilotConfigurationJSON cmdlet inside the WindowsAutopilotIntuneCommunity module, which Andrew merged, signed, and published a new version containing that change within an hour. Super quick.

So now if you recreate your JSON file for Autopilot for existing devices, you can follow the Microsoft documentation (effectively “Get-AutopilotProfile | ConvertTo-AutopilotConfigurationJSON”) but substitute the WindowsAutopilotIntuneCommunity module for the WindowsAutopilotIntune module. Or you can just manually edit your existing AutopilotConfigurationFile.json to add the “CloudAssignedRegion” entry. With that in place, you should see that the process starts with the Azure AD sign-in process instead of a prompt for the region.

1 reply »

  1. Very clever. I’ve never required to set a region as the companies I’ve worked for or with have been global, but I suppose if I was setting up setting up Autopilot profile configs for regions that required a bunch of things setup for particular regions it would be well useful.

    Like