Windows AutoPilot and the case of the missing keyboard layout
I’m currently working a lot with Windows AutoPilot. And while it has matured quite a bit in the last couple years, there are still some things that make you wonder.
Targeting a multi-national environment, key requirement was the ability to at least let the user set the correct region and keyboard layout. While I’d love to have a bit more control about other aspects as well, this is covered right out of the box. Well, at least it should. But for some weird reason, when we deployed a machine through AutoPilot, we either had the option to select a region and it skipped the keyboard layout selection. Or it showed the keyboard selection and skipped the region selection.
At the end it turned out to be a (kind of) user error on my side, making wrong (logical) assumptions. I thought it might be helpful for someone else and maybe save some time there. So lets follow me on some stupid mistake.
When you create a new deployment profile, the default configuration for the Region is “Operating system default”, and “Automatically configure keyboard is set to “Yes”. Which is probably a perfect configuration for a small deployment if you only have to deal with a single region and keyboard layout.
Being a bit naive, I thought the best choice would be “User Select”, which also makes the option for “Automatically configure keyboard” disappear. That actually made perfect sense to me. If I want to give someone the ability to set the current region, I definitely want to make sure the keyboard layout can be selected as well. Right?
Wrong! That might be the intended behavior behind this UI “feature”. It just doesn’t work that way. At least not if you do it in that order. But I’m jumping ahead already. When we deployed a new machine, it asked to select the region, as requested and then jumped immediately to the authentication part. Where you now have to type your password with special characters on a probably non-familiar keyboard layout. Doesn’t sound that like a lot of fun?
Then I went back and changed the “Region” back to “Operating system default” and select “No” for “Automatically configure keyboard”. Gave that a run and this time, it skipped the region selection, but gave the option to select the keyboard layout. Great. One step further. The keyboard layout was definitely the more important selection of the two, as it would at least allow the user to type in the password properly. We could probably deal with wrong date or number formats later.
Going on further, I then switched the “Region” back to “User select”, which made the keyboard option disappear again. And guess what? Now it suddenly asked to select region and keyboard layout. As intended earlier. Hooray!
I went back and forth with those settings and it turns out, the selection you make for “Automatically configure keyboard” will be respected by the process. As it probably should. You just can’t see what you selected, once you change the region to “User select”. You can easily validate this by getting the json files for the deployment profile and compare the oobe config value. Michael Niehaus has a great guide on this at Interpreting the Windows Autopilot profile – Out of Office Hours (oofhours.com), which helped me a lot better understanding the actual behavior.
This is likely a well-intentioned UI feature. Just the implementation leaves some room for improvement.
To summarize, if you want the user able to select both Region and Keyboard then:
- Set “Automatically configure keyboard” to “No” first!
- Set “Region” to “User Select” afterwards
So what did we learn today? Just take the second step before the first, and you are fine.