Windows 10 2004/20H2 – Use LXP in Task Sequence

Windows 10 2004/20H2 – Use LXP in Task Sequence

Last year I wrote a Blog Post about Language Experience Packs (LXP’s) within a 1909 OSD Task Sequence.  

But I think no one of us still want to deploy this “old” OS and is looking forward to Windows 10 20H2. Fortunately, my colleague Markus just texted me last week with some optimization for the implementation of LXP’s.

I really liked it so here it is.


You still need to apply the LXP Files you want in the Task Sequence. Alternatively, you can prepare your Image with the LXP files, if you want to… have a look at Michael Niehaus Blog Post for more Information about that: 

Download the LXP ISO for 2004 and extract the language you need to your Package Share destination (No new LXP’s for 20h2 are released. You can use the LXP’s for 2004). 

In my example I used the de-DE LXP’s. 

Create a SCCM Package for every extracted Language and distribute the content to you DP’s. (If you need help how to create a Package, maybe this Blog post can help you. Short note – we don’t need a program). 

So now there is the cool Part. We just need three Task Sequence Steps to implement the LXP’s for a Language.  

Set Dynamic Variables: 

First create a Set Dynamic Variables Task Sequence Step with the following Configuration to set the Language Settings which will be used in the Apply Windows Settings step.

Make sure to define the Location Variable (for example as a Variable Property on the Computer Object, Collectionvariable, additional Set Task Sequence Variable Step based on Computername,…) in the Language Tag Format used by Windows – in my case for Germany “de-DE”.  

Here you can look up the Language Tags: 

Install DEDE: 

Use the Add-AppxProvisionedPackage command to Install the LXP. Link the Package with the described files above. 

powershell.exe -executionpolicy bypass -command "Add-AppxProvisionedPackage -Path C:\ -PackagePath .\ -LicensePath .\License.xml"

You can create this Step for each language you want to install based on Variables. Double check the linked Package – you need to change this for each Language. 

Add FOD: 

The next and last step will install some German Features on Demand. Just a short reminder… Have a look at your execution policy for PowerShell Scripts ;). 

This Script can be used for any Language you want to install. So, no duplicated Steps for different Languages are necessary. 

# Create an object to access the task sequence environment
$tsenv = New-Object -ComObject Microsoft.SMS.TSEnvironment

# Query the environment to get an existing variable
# Set a variable for the language to use
$lng = $tsenv.Value("Location")

# Get all available language capabilities
# and install them from the Internet using DO if available
Get-WindowsCapability -Online | where { $_.Name -like "Language*$lng*"} | Add-WindowsCapability -Online

So far so good – that was everything you need to know for the Win10 20h2 OSD TS. 

Make sure to check out my colleague Markus on Twitter: @MarkusBux 

Again, a few additional notes here which might help you…

  • If your Search bar doesn’t work anymore… make sure you install the latest cumulative update
  • For the “Install DEDE” Step you need the Windows PowerShell (WinPE-DismCmdlets) Optional Components in your WinPE Image
  • Built-in Apps will change the language after the Windows Store updates your apps. Be patient or start an update scan from the store. Still have no solution for that.
  • If your Search bar is still in English… make sure you don’t use the SkipeOOBE feature in your unattended xml.


Leave a Reply

Your email address will not be published. Required fields are marked *