Thursday, 24 August 2017 06:50

Add Language Packs to MDT Using PowerShell

Written by
Rate this item
(2 votes)


In order to deploy Windows 10 with Microsoft Deployment Toolkit in a multi language environment successfully, you probably have to work with language packs. In today’s blog I will discuss the approach that I use to import language packs and features on demand packages in Microsoft Deployment Toolkit using PowerShell.

I am attending Expert Live Europe this week. Between sessions, meeting new people and (obviously) partying, I wanted to talk about language packs management. More specifically, automating language packs management because I would rather spend 2 hours automating something before spending 15 minutes on a boring, manual task.

Apologies for sounding like a record stuck in a groove, but the thing is: in the time where everything happens so rapidly: we are now seeing Windows Insider Preview every other week, we have production releases of Windows 10 twice a year. The fast cadence of Windows feature updates means that you need to keep your language packs up-to-date which can become a daunting and actually a pretty boring task. The good news is that you can simplify your language packs management by leveraging Microsoft Deployment Toolkit's PowerShell module meaning you can import or update all of the language packs that will be needed into your MDT Deployment Workbench in a fingersnap.

For Windows 10 for desktop editions (Home, Pro, Enterprise, and Education), language packs have been split into language components and Features On Demand V2 (Capabilities).

You can install multiple languages onto the same Windows 10 image. For each language, where available, you should add following language packages to your images:

  • Add the language pack and the Basic components.
  • To preload Cortana features, also add the Text-to-speech and Speech recognition.
  • Add Fonts and Optical character recognition for the most popular languages within a region to improve your user’s first experience.
  • Add handwriting recognition for devices with pen inputs.

If you do not add language specific features on demand during deployment your Windows systems will request missing feature packages from Windows Update trying to download and install them in the background when the user logs in for the first time. Aside from the usual network related concerns, keep in mind that you need administrative priviledges to install features on demand. If you are running standard user model in your environment (which you should), your end users will end up with annoying pop up messages in the notification center detailing that vital parts of the OS are missing leading to end user confusion and increased help desk calls.

How does it work:

To import language packs and features on demand, follow these steps:

  1. Download current Windows 10 Enterprise language pack and features on demand ISO files from the Volume Licensing Service Center (VLSC).

    As Michael Niehaus wrote a while back, with Windows 10 1507 and 1511, you could select Windows 10 Enterprise Language Pack, click Download and then select English and 64-bit to see the downloads. But that doesn’t work with the Windows 10 1607 language packs. Instead, you need to select Multilanguage from the drop-down list of languages to see the new ones. Features on demand are easy, search for Windows 10 Enterprise Features on Demand and you’ll see all three releases in the list.

  2. Copy the content of both ISO files (language packs / features on demand) to the \\UNCShare\Import\LANGUAGE_PACKS\MultiLang_Feat_on_Demand_%W10Version% folder.
    Example: \\MDT01\C$\Import\LANGUAGE_PACKS\MultiLang_Feat_on_Demand_1703
  3. Open MDT-ImportLanguagePacks.ps1 PowerShell script. Adjust following variables to match your environment:
    $mdt_root = "\\MDT01\W10$\" #UNC or local
    $w10_build = "1607"
    $w10_rel = "Windows 10 " + $w10_build + " x64"
    $lan_lis = @("de-de","fr-fr","es-es","el-gr","hu-hu","it-it","nl-nl","pl-pl","pt-pt","ru-ru","sv-se","tr-tr") #list of languages to import into MDT
    $src_dir = "\\MDT01\C$\Import\LANGUAGE_PACKS\MultiLang_Feat_on_Demand_" + $w10_build
    Note: Make sure that the following variables match your environment: $mdt_root, $w10_build, $lan_lis, $src_dir. Pay close attention to the $w10_build variable. It has to match %W10Version% - if it doesn’t, the script will not be able to determine source folder.
  4. Run the script.

The script will first create a package repository. It is the key to successful management of language packs for MDT as well as for any other deployment solution. In the MultiLang_Feat_on_Demand_%W10Version% folder, the script will copy feature files into corresponding %language_code% subfolders.

Example: For Redstone 1 release you will end up with the following folder structure:

  • MultiLang_Feat_on_Demand_1607
    • de-de
    • fr-fr
    • es-es
    • el-gr
    • ...
    • tr-tr

When you import packages to the MDT package repository, MDT creates a single instance folder structure. However, you can, and should, mimic the package structure of your language pack source repository in the Deployment Workbench. The script accomplishes this by creating logical folders in the Deployment Workbench.

Example: For Redstone 1 release you will end up with the following logical folder structure in MDT:

  • Packages
    • Language Packs
      • Windows 10 1607 
        • de-de
        • fr-fr
        • es-es
        • el-gr
        • ...
        • tr-tr

The preceding folder names are selected purely for readability.

The script will then import language packs as well as applicable features on demand packages into corresponding subfolders in MDT.

That's it! In one of the next blog post I'll explore how to take imported packages and generate a task sequence specific CustomSettings.ini.

Download MDT-ImportLanguagePacks.ps1

Read 25518 times Last modified on Friday, 25 August 2017 06:42

Recent Posts

  • Windows 10 21H2 Built-In Apps: What to Keep
    The development of the Windows 10, version 21H2 is finished and the update will soon be available for download from…
    Written on Wednesday, 20 October 2021 11:41
  • Group Policy Changes in Windows 10 21H2
    As Windows 10, version 21H2 update development winds down, Microsoft is now preparing for the final release of the Windows…
    Written on Wednesday, 20 October 2021 07:20
  • Group Policy Changes in Windows 10 20H1 Preview
    As Windows 10 Vibranium Update (20H1) development winds down, Microsoft is now beginning the phase of checking in the final…
    Written on Tuesday, 14 January 2020 04:51
  • An alternative ESU MAK Activation Solution
    This blog post was shared with me by a colleague of mine, Daniel Dorner, a Microsoft Premier Field Engineer. It’s…
    Written on Wednesday, 04 December 2019 21:04
  • The Case of Missing UE-V Templates
    My customers often deal with unexpected Windows behavior and this case is no different. This particular one is especially interesting…
    Written on Tuesday, 03 September 2019 12:20
  • The Case of Changing Default Printer
    While I sometimes long for the day when I no longer have to deal with unexpected Windows 10 behavior, there’s…
    Written on Wednesday, 14 August 2019 20:36