Upgrading Windows 10 devices with installation media different than the original OS install language
Published Jul 09 2019 02:45 PM 26.3K Views
Microsoft

In order for Windows 10 feature updates to be successful in a multilingual organization, IT professionals need to carefully consider how they apply language packs (LPs) to the devices in their organizations.

Today, organizations that deploy multilingual Windows 10 devices typically use an unattended answer file via System Center Configuration Manager or the Microsoft Deployment Kit (MDT) with a preconfigured default UI language based on the region where the device will be used. When default UI language setting is preconfigured before the out-of-box experience (OOBE), the device’s OS install language is overwritten with the default UI language setting. As a result, future in-place Window 10 feature updates are blocked because the device’s OS install language does not match the media install language.

In this post, we will look at a scenario where a hypothetical multilingual organization wants to deploy Windows 10 to devices across multiple geographies in multiple languages. We’ll then outline the options that you can use to work around device install language issues and successfully deploy a Windows 10 feature update.

Scenario

The scenario we’ll use in this blog post is as follows:

An IT pro has created a global deployment where they install the English ‘en-US’ language version of Windows 10 on all devices regardless of location. At the same time, to localize the device experience, they install specific LPs. For example, for Windows 10 devices in France, they will install the French ‘fr-FR’ LP and set the default UI language to French. The OS install language is then overwritten from English to French. Later, when attempting to deploy the latest Windows 10 feature update using English media, the update fails, eliciting error code c1900204, and is only successful when a French language installation is used.

Option 1: Upgrading Windows 10 devices using Windows Update for Business

Windows Update for Business, a publicly available and cloud-based Windows update service that simplifies update management for Windows 10, is one of the simplest options to work around this issue with no additional effort required. Devices configured with Windows Update for Business can roll out Windows 10 updates seamlessly without any additional approval or configuration. To use Windows Update for Business, devices simply need to be allowed to access the Windows Update service as this is a requirement.

Option 2: Upgrading Windows 10 devices using the on-premises Windows 10 software update path (i.e. servicing flow)

If you are using Windows Server Update Services (WSUS) or Configuration Manager, you can approve and deploy Windows updates at your own pace to specified devices. To upgrade Windows 10 multilingual devices with this option, we would need to specify the device language configurations in the WSUS or Configuration Manager Server console, then approve the language-specific content and payload in the approval workflow. In this case, we would configure the root WSUS server or Configuration Manager to download updates in French and English.

We would utilize the WSUS Configuration Wizard to get updates only for specific languages by checking the box for Download updates only in these languages, then selecting the languages for which we need updates (English and French). Based on language and synchronization settings, WSUS would then communicate with the Microsoft web services catalog to synchronize with the WSUS local catalog. (This does not involve download of content/payload of update packages).

01_wsus-wizard.png
WSUS configuration wizard: language selection

Once language settings are configured, we would need to manually approve and deploy Windows 10 feature updates in WSUS if auto-approval rules were created. Our targeted devices would then download the update payload into their local cache and install the update.

Similarly, in Configuration Manager, when creating a servicing plan, you can specify the language selection for the Windows 10 feature update files that you want to download.

02_create-servicing-plan.png
Creating a servicing plan in Configuration Manager

03_select-languages.png
Selecting languages for software updates in Configuration Manager

Downloading and distributing updates this way; however, would consume valuable network resources as we would have to download the payload in French and English as opposed to just English. To reduce network consumption, we could use Delivery Optimization or Low Extra Delay Background Transfer (LEDBAT), sharing the work of downloading these packages among multiple devices in our environment with optimized latency, a network congestion control provider. Delivery Optimization is a self-organizing distributed cache that allows devices to download packages from alternate sources (such as other peers on the network) in addition to the traditional Internet-based servers.

In addition to Delivery Optimization and LEDBAT, we could set up multiple device groups in WSUS that would allow us to target updates to groups of devices and sequentially approve language-specific downloads for a subset of these groups, then repeat this process to avoid network burden.

If we were using Configuration Manager alone, we would choose Assets and Compliance > Device Collections in the Configuration Manager server console to select the collection of devices to which we intended to deploy the feature update and follow the same approach as described for WSUS to target the feature update sequentially.

Option 3: Upgrading Windows 10 devices with one Windows 10 media image per language

Another option is to create one Windows 10 media image per language, then build deployment groups to separate devices based on all combinations of source OS install languages in order to push the correct media to each device.

In our example, where the OS install language is overwritten from English to French, these devices will be included in the French deployment group as shown in the table below. Each combination of media install language and OS install language (based on the region, optionally) is tied to a specific deployment group. The naming convention used to identify the group (Deployment ring column) is completely customizable and can clearly identify the media install language and default OS install language used in that region.

Deployment ring

OS install language

Media install language

Country/region

French

fr-FR

fr-FR

France

English

en-GB

en-GB

Australia

English (US)

en-US

en-US

United States

An example of the deployment rings you might use.

Note: For devices with multiple LPs installed, additional time may be required to prepare installation media with additional language packs by acquiring them from the Volume Licensing Service Center. When Dynamic Update is disabled or Internet connectivity is unavailable during the feature update process, any additional LPs and/or features on demand (FODs) on the device (but not on the media) will be dropped.

The LP for Windows 10 is a single ISO file, and each architecture will contain its own langpacks folder as shown below.

04_folder-structure.png
ISO file folder structure

05_langpacks.png
Langpack file name structure

The FOD consists of two ISO files. The first contains language specific FODs. The folder structure contains multiple CAB files that represent a FOD. The name of the CAB files that contain language-specific features start with Microsoft-Windows-LanguageFeatures and are organized into multiple categories such as basic, speech, or OCR as shown below.

06_FOD-file-name-structure.png
FOD file name structure

To take inventory of what a device is using for languages and the default OS install language configured, run the following commands from an elevated command prompt in the Deployment Image Servicing and Management (DISM) tool:

 

DISM /online /get-intl
DISM /online /get-capabilities

 

This will give you a list of all features as shown below.

07_dism-getintl.png
Sample results from DISM /online /get-intl

08_dism-getcapabilities.png
Sample results from DISM /online /get-capabilities

You can also consider using Get-WindowsCapability Windows PowerShell command to get a list of Windows capabilities installed on a running OS to build an inventory.

Option 4: Upgrading Windows 10 devices with preinstalled LPs and FODs using a single Windows media image

Next option is to create a single Windows image by preinstalling all the necessary LPs and FODs required for the targeted devices and use this single installation media image to deploy the feature update to those devices.

To take inventory of what the device is using for languages, features and the default OS install language configured, run the same commands outlined in option 3 from an elevated command prompt in the Deployment Image Servicing and Management (DISM) tool:

DISM /online /get-intl 
DISM /online /get-capabilities 

Once you have the list of required LPs and FODs, download the LPs and FOD ISOs required and add them to a single Windows installation media image. When LPs and FODs are added to or installed via Windows 10 install.wim, we recommend that you update the Windows RE (WinRE) image at the same time for a future recovery experience.

If you don’t opt to update the WinRE image, Windows feature updates will still install; however, the recovery environment that can repair common causes of an unbootable OS won't be configured to recover the OS in the language in which it was configured on the device, or it will recover the OS in the wrong language. (Note: WinRE LPs are distributed as part of the LP ISO. The Windows RE LPs in the Windows 10 ADK should not be used to customize Windows RE in this type of scenario.)

Patching LPs in a Windows 10 WIM image can be achieved in many ways. Below we have detailed the process of patching LPs into a Windows 10 WIM image using the command-line in DISM, after which we run setup using updated media to complete the feature update successfully. If LPs or FODs are added to an image that already contains servicing stack updates (SSUs) or cumulative updates (CUs), make sure to follow the sequence of installing the SSUs first, followed by the LPs, FODs, and CUs at into the media to avoid reapplying a cumulative update after the completion of a feature update.

Step 1: First, we mount the Windows image to a local drive:

md C:\mount\windows
Dism /Mount-Image /ImageFile:install.wim /Index:1 /MountDir:"C:\mount\windows"

Step 2: Then, we add the French LP with an optional Luxembourgish LXP and speech recognition FOD for French language to the en-US base install media:

DISM /Image:"C:\mount\windows" /Add-Package /PackagePath="D:\x64\langpacks\Microsoft-Windows-Device-Language-Pack_x64_fr-fr.cab"
DISM /Image:”C:\mount\windows” /Add-ProvisionedAppxPackage /PackagePath=”D:\LocalExperiencePack\lb-lu\LanguageExperiencePack.lb-LU.Neutral.appx /LicensePath:”D:\LocalExperiencePack\lb-lu\License.xml”
DISM /Image:"C:\mount\windows" /Add-Package /PackagePath:E:\Microsoft-Windows-LanguageFeatures-Speech-fr-fr-Package~31bf3856ad364e35~amd64~~.cab

Step 3: Now, we change the media install language to French (fr-FR):

Dism /Image:"C:\mount\windows" /Set-AllIntl:fr-fr

Step 4: We can then unmount and commit the changes to the Windows image:

DISM /Unmount-Image /MountDir:C:\mount\windows /commit

Step 5: Now that languages (French in addition to English) have been added to the Windows image (install.wim), we want to make sure they appear in Windows Setup. To do that, the Boot.wim bootable image must have a lang.ini file within the source’s media directory. This enables you (or your users) to run Windows Setup in your default OS install language. To check this:

  • Mount the second image (index 2) in Boot.wim:
    md C:\mount\boot 
    Dism /mount-image /imagefile:C:\my_distribution\sources\boot.wim /index:2 /mountdir:C:\Mount\boot
  • Add LPs from the Windows ADK into your mounted image using Dism /Add-Package by following the same instructions as described under step 2 above.
  • Change the Windows setup default language:
    Dism /image:C:\mount\boot /Set-SetupUILang:fr-FR
  • Create the Lang.ini file to reflect the additional languages:
    Dism /image:C:\mount\windows /gen-langINI /distribution:C:\my_distribution
  • Copy the lang.ini file in the Windows distribution to the boot folder:
    Xcopy C:\my_distribution\sources\lang.ini C:\mount\boot\sources\lang.ini
  • Unmount and commit changes to Windows Boot image:
    DISM /Unmount-Image /MountDir:C:\mount\boot /commit

Step 6: Run Setup using the updated media to complete the feature update.

When performing a Windows 10 feature update using this updated Windows installation media, you can either query the default OS install language configured on the device using DISM /online /get-intl and accordingly match the media install language by running Dism /image:C:\mount\boot /Set-SetupUILang:fr-FR before starting feature update, or alternatively, you can set each LP to the default. Once each LP is set to default, a new index will be added to install.wim. Further, when you perform a feature update using this updated single installation media, make sure to select the right index.

Managing large payload size considerations

Having too many LPs and FODs in a single image affects disk space and can affect performance, especially when performing a feature update. Some languages require more hard-disk space than others. You can save disk space by choosing to include only the required language components in your image. However, setup will use only the files provided on the installation media and if additional LPs or FODs used by devices are not patched to media, existing installed FODs and LPs will not be retained after the feature update.

Option 5: Upgrading Windows 10 devices by patching LPs and FODs locally on a device machine using a single Windows media image

Like option 4, in this option IT professionals create a single Windows image by preinstalling the necessary LPs and FODs required, but only the languages and features they want on a given client by patching them on the client itself.

As in option 4, we start by creating a single Windows image, preinstalling the necessary LPs and FODs and leaving the languages and features we want for a given device up to the process of patching them on the device itself. This is definitely not the most efficient option, but it is an option. (As stated above, you can run DISM /online /get-intl and /get-capabilities from an elevated DISM command prompt to get the default OS install language and all other LPs and FODs installed on the device.) Once we have an inventory of LPs and FODs, we can mount install.wim from the media and follow the steps outlined in option 4 to add them to the Windows 10 installation media. We then change the media install language using DISM /Image:"C:\mount\windows" /Set-AllIntl:fr-FR to match the source OS install language, then unmount and commit. We finish by running Setup to successfully perform the feature update using updated media.

Conclusion

As shown in the options described above, corporations with multilingual Windows 10 devices can update their devices to the latest version of Windows successfully, while at the same time preserving valuable LPs and FODs previously installed, in multiple ways. This allows them to keep those devices current with the latest security and productivity enhancements.

Learn more

To ensure that LPs and FODs are retained when updating devices with the latest Windows 10 feature updates, see Language pack acquisition and retention for enterprise devices. To add multilingual support to Windows, refer to Add multilingual support to a Windows Distribution. To customize Windows Recovery Environment (Windows RE) by adding languages, packages drivers, and custom diagnostic or troubleshooting tools, see customize Windows RE

2 Comments
Version history
Last update:
‎Jul 09 2019 05:36 PM
Updated by: