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

By August 11, 2020Windows AutoPilot

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 or from  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.


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


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.


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.

Source link

Share this post via

Leave a Reply