Windows Autopilot

Windows 10 2004 + every local experience pack = A planet-wide OS image

I talked about the improvements that Windows 10 version 2004 introduced with local experience packs in a previous blog.  In the context of Windows Autopilot and OOBE, you can add one or more local experience packs (LXPs, basically, stripped-down language packs) so that the user can choose between them at the start of OOBE. 

Yuri Blaise (on the team responsible for these language improvements) did an additional blog that talked about, among other things, how much additional disk space would be required to add every LXP that is available.  The answer:  2.47GB.  (Using LP.CABs would take 7.1GB.)  So what happens if you add every LXP?  It’s easy enough to try by downloading the Windows 10 2004 language ISO (from https://my.visualstudio.com or from https://www.microsoft.com/vlsc).  The process I used:

  1. Download the ISO.
  2. Mount the ISO in the VM.
  3. Boot to the first screen of OOBE.
  4. Press Shift-F10 to open a command prompt.
  5. Run PowerShell.exe.
  6. Execute a simple one-liner to install all the LXPs.
  7. Reboot the computer with “shutdown /r /t 0” to get back to the start of OOBE.

The actual PowerShell command was:

dir *.appx –recurse | % { Add-AppxProvisionedPackage -Online -PackagePath $_.FullName -LicensePath “$($_.DirectoryName)\License.xml” }

After a period of time, the command will complete and then you can reboot.

image

After the reboot, you’ll see a much longer list of languages:

image

You can choose one of those languages and then proceed through OOBE in that language.  I choose Spanish just because it’s one that I can read enough of to actually do something useful at the end.

image

After OOBE completes, the user will be signed in for the first time.  As noted in Yuri’s blog, in the background some additional language resources will be downloaded from Windows Update and installed automatically, so connectivity to the Windows Update service is needed.  (Delivery Optimization should be used for the downloads, so peer-to-peer sharing and Connected Cache should be leveraged to save bandwidth.)  These resources aren’t too large (compared to the LXPs or Windows updates), so the process should be pretty quick.  Also, the system UI language must be one that uses a full LP.CAB, but that’s generally a good thing for servicing (especially if you use media, e.g. task sequences, for upgrading).  Since the users will pick their own language (which becomes the default for subsequent users who sign on as well), the system UI language value doesn’t matter as much.

So the real trick is then to talk OEMs into preloading the devices with a full set of languages to support this.

Categories: Windows Autopilot

7 replies »

  1. Great Article
    What about Time zones, it still only defaults to Pacific time when using OOBE AutoPilot AAD or HAAD join….

    Kind Regards
    Daniel Bleyer

    Liked by 1 person

    • Yes, LXPs can be added offline. (As noted in the original blog, they can’t be used via unattend.xml to set the system language.) Yes, OEMs are able to add any languages needed.

      Like

  2. If you add all of the languages, which of the FOD components get downloaded once the OOBE completes? All FOD for all languages or just the ones relevant to the User Default language? I am thinking about the bandwidth impact during the user’s initial login experience, if an OEM does include all of the languages into their Generic Image. Particularly in a ship to home APWG scenario.

    Like

  3. Currently testing the LXP’s but I’m not impressed thus far regarding the translation behavior. But for having an EN-US base and injected 110 LXP’s the small size is impressive to say the least.

    Back to translation as such, OOBE looks reasonably fine when selecting the language. Logging on as a user I found that there’s a mixture of Languages from English to the Selected Language during OOBE. Being logged on a screen still showed the message in English rather than the selected Language (did see different behaviors with different languages), just like when logging off. Start menu is still in English for Power, but then restart and shutdown are translated, Explorer ribbon is partly translated which will be causing confusion I for end users (following i.e. manuals). Settings pages are a mixture of languages as well.Then as you explained it will download the different FOD’s for the selected language. One time it’s very quick but occasionally these download start very late or haven’t even been started to download after an hour whilst the system/vm has access to the internet.

    So I think the main question would be, is this ready to be used? Based on what I’ve seen, it’s not. As the translation has huge gaps to be honest, which seems also a bit depending on the language chosen. Which either customers or end users will not like at all from how I look at it..

    Like