Using OSD Builder to Create a Multi-Language Windows 10 Image

Here is a quick guide on how to use #OSDBuilder from David Segura (@SeguraOSD) to create a Windows 10 v1909 reference image with two language packs (German and Swedish), as well as with .NET Framework enabled. This guide contains of the following steps:

  • Installing OSD Builder
  • Import OS Media, with Language Packs, and run the Update
  • Keeping the OSD Builder platform updated

Installing OSD Builder

When using OSD Builder I've found it useful not only to create separate repositories for client and server images, but also for multi-language images. That can be done by using the -SetHome feature for OSDBuilder, or in my case, I use a separate Windows 10 v1909 virtual machine for each build type. For more info about starting clean with the -SetHome feature, check this link: https://osdbuilder.osdeploy.com/docs/advanced/multilang-baseline/clean-start

The Windows 10 v1909 VM spec I use to build my Windows 10 Multi-Language image on.

1. On a Windows 10 PC, preferably the same version or newer than the OS Image you are updating, install the OSDBuilder by running the following command in an elevated PowerShell prompt (allow the installation of the Nuget provider):

Install-Module -Name OSDBuilder -Force

2. Import the OSDBuilder module by running the following command in an elevated PowerShell prompt:

Import-Module -Name OSDBuilder -Force
Installing and importing the OSD Builder module.

Import OS Media, with Language Packs, and run the Update

This process imports Windows 10 Enterprise, adds Language Packs, adds .NET Framework to the image, and updates the media with the latest updates. In this example you add the German and Swedish language packs. To follow this guide, you need the following media:

  • Windows 10 Business Editions x64 v1909 ISO.
  • Windows 10 1903 x64 Language Packs ISO

Note: Since Windows 10 v1909 is basically the same media as Windows 10 v1903, you use the Windows 10 v1903 language packs for Windows 10 v1909.

Here follow the steps:

1. Mount the C:\ISO\Windows 10 Business Editions x64 v1909.iso file by either double-clicking it, or by running the following command in an elevated PowerShell prompt:

Mount-DiskImage -ImagePath "C:\ISO\Windows 10 Business Editions x64 v1909.iso"

2. Import the OS Media by running the following command:

Import-OSMedia -ImageName 'Windows 10 Enterprise' -SkipGrid -BuildNetFX

3. Create a new content pack to hold the German language pack files, by running the following command:

New-OSDBuilderContentPack -Name "MultiLang DE" -ContentType MultiLang

4. Create a new content pack to hold the Swedish language pack files, by running the following command:

New-OSDBuilderContentPack -Name "MultiLang SE" -ContentType MultiLang

5. Mount the Windows 10 v1903 Language Pack ISO, and copy the \x64\langpacks\Microsoft-Windows-Client-Language-Pack_x64_de-de.cab file to the C:\OSDBuilder\ContentPacks\MultiLang DE\OSLanguagePacks\1909 x64 folder

The German language pack copied to the content pack folder.

6. Then copy the \x64\langpacks\Microsoft-Windows-Client-Language-Pack_x64_sv-se.cab file to the C:\OSDBuilder\ContentPacks\MultiLang SE\OSLanguagePacks\1909 x64 folder.

7. Create a new OS Build Task by running the following command (and then select the OS media, and content packs you want to use):

New-OSBuildTask -TaskName MultiLangBuild -AddContentPacks
Selecting the OS media.
Selecting the contents packs that includes your language packs.

8. Update the media by running the following command:

Get-OSMedia | Where-Object Name -like 'Windows 10 Enterprise x64 1909*' | Where-Object Revision -eq 'OK' | Where-Object Updates -eq 'Update' | foreach {Update-OSMedia -Download -Execute -Name $_.Name} 

9. Build the media by running the following command:

New-OSBuild -ByTaskName MultiLangBuild -Execute

10. Review the content created in the C:\OSDBuilder\OSBuilds folder.

Keeping the OSD Builder platform updated

As Microsoft release new updates, the OSD Builder platform must be updated too.

1. OSD Builder platform can be updated by running following command:

OSDBuilder -Update

2. Get the latest updates by running the following command:

Update-OSDSUS

3. Import the OSDBuilder and OSDSUS modules by running the following commands in an elevated PowerShell prompt:

Import-Module -Name OSDBuilder -Force
Import-Module -Name OSDSUS -Force

4. Update the previously imported image by running the following command:

Get-OSMedia | Where-Object Name -like 'Windows 10 Enterprise x64 1909*' | Where-Object Revision -eq 'OK' | Where-Object Updates -eq 'Update' | foreach {Update-OSMedia -Download -Execute -Name $_.Name}

5. Generate an updated OS Build by running the following command:

New-OSBuild -ByTaskName MultiLangBuild -Execute

Happy Deployment / Johan Arwidmark

About the author

Johan Arwidmark

5 1 vote
Article Rating
Subscribe
Notify of
guest
4 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Joerg
Joerg
1 year ago

What is the best way to keep the "OS" updated? Write a script to update osdbuilder and then the "OS"? If yes, what would be the best way?

James
James
1 year ago

What is best practice when dealing with multiple languages? Each language gets its own task sequence? One task sequence that deploys the language based on input/variables? Previously I have only deployed a task sequence in English but now my company has locations in South America, Italy, and Germany. I am unsure as to the best course of action.

I always appreciate your posts and what you do for the community!


>