The easiest way to install language pack via Intune

The purpose of this blog post is to inform you how to install the language pack on Windows 10 or Windows 11 via Microsoft Intune. In this blog post, I list several different methods and then I will show my preferred ways.

There are several options to install the language pack via Microsoft Intune. When you have to deal with a multilingual environment, it could be hard to install the right language pack via Microsoft Intune. Especially when your users want or need to use Windows in their own language, but your global service desk is English-orientated. Also, not all languages are installed by the vendor, so you have to install the language via Intune. This can be a hard job when the users are all over the world, but I will explain my preferred way how to install the language pack via Intune easily.

Requirements:

  • Windows 10/11 Pro/Enterprise version 21H1 and later
  • The latest cumulative update installed
  • Microsoft Intune license
  • Intune MDM managed device
  • Intune Admin or Global Admin Role

Optional requirements:

  • Windows 10/11 Enterprise E3/E5 Or Microsoft 365 F3/E3/E5 license
  • Endpoint Analytics

Previously installation possibilities

There were several options available to install the language packs on Windows 10/11

  • Manual installation via Settings
  • Manual installation via Microsoft Store
  • Manual or required installation via Company Portal, Microsoft Store, and PowerShell

Update from Microsoft

Since the 20h2 latest cumulative update, a new PowerShell command is available to install the language pack. I have tested this option, and this is awesome. I have already implemented this setting in multiple Intune environments. Also, I hear al lots of positive feedback in the community about this new method.

There are five PowerShell commands available to get, install, remove, or set the preferred language. It is easy to use, for example, to install a language pack use the following command:

Install-Language nl-NL

The PowerShell commands need to be run as an administrator and ask your users to run a PowerShell command is also not super user-friendly. Later more about this.

What are the new PowerShell commands?

PowerShell commandsDescription
Get-InstalledLanguageReturns information about the installed languages on a device.
Get-SystemPreferredUILanguageReturns the current System Preferred Language.
Install-LanguageInstalls a language onto a device.
Set-SystemPreferredUILanguageSets the provided language as the System Preferred UI Language.
Uninstall-LanguageUninstalls a language from a device.

Note. Click here for all language pack tag

New installation possibilities

Today we have the below options available as well to install the language packs on Windows 10/11

  • Manual or required installation via PowerShell (Install-Language)
  • Required installation via Proactive remediation Script (Install-Language)
  • Manual or required installation via Company portal, Win32App & PowerShell (Install-Language)

Which option should I use?

As you can see in the above list, there are several ways to install the language pack on Windows 10/11. formerly, I advised my customers to install the language pack manually because installing the language pack via Company Portal does not work properly. The language pack will be installed but will not appears in the list of available language. So, the user needs to run a PowerShell command in the user context. In my opinion not very user-friendly.

Also, I don’t like to tell the users you can install the language pack in the Microsoft store and your application in the Company Portal. I prefer one source of truth, and this is also not user-friendly in my opinion.

Of course, you can download the language pack and add a PowerShell script and wrap those files in a win32 app and distribute via Intune, but the PowerShell command will override the installed language(s) and default language. So, this is also not user-friendly.

So that was the reason why I always recommended installing the languages manually via settings. But now we have the new PowerShell command to install the language pack. This makes it easier to install the language packs.

The new PowerShell command is definitely my new preferred method. But depending on the organization’s preferences, I use the PowerShell, Proactive remediation, or Win32 app method via Intune.  I will explain these three options in the sections below.

How to install language Pack via PowerShell script with Intune

PowerShell Script:

Install-Language nl-NL
  • Open Microsoft endpoint manager
  • In the menu select Devices
  • Click on Scripts in the menu under Policy
    Or use the following link Devices – Microsoft Endpoint Manager admin center
  • Click on Add
  • Select Windows 10 and later
  • Provide a Nameg., Language Pack – Dutch
  • Set a description if needed
  • Click on Next
  • Upload the PowerShell scripts
  • Configure the following PowerShell script settings
SettingsValue
Run this script using the logged on credentialsNo
Enforce script signature checkNo
Run script in 64 bit PowerShell HostYes
  • Set a scope tag if needed and click on next
  • Assign the PowerShell script and click on Next
  • Review the configuration and click on Add

How to install language Pack via Proactive Remediation script with Intune

Note. Save the PowerShell scrips as UTF8 encoded

Detection script:

$OSInfo = Get-WmiObject -Class Win32_OperatingSystem
$languagePacks = $OSInfo.MUILanguages

if ($languagePacks -contains "nl-NL")
    {
    write-output "Installed"
     Exit 0
    }
    else
    {
    write-output "Not installed"
     Exit 1
    }

Remediation script:

Install-Language nl-NL
  • Open Microsoft endpoint manager
  • In the menu select Reports
  • Click on Endpoint analytics in the menu under Analytics
  • Click on Proactive remediations
    Or use the following link Endpoint analytics – Microsoft Endpoint Manager admin center
  • Click on Create script package
  • Provide a Nameg., Language Pack – Dutch
  • Set a description if needed
  • Click on Next
  • Upload the Detection scripts and Remediation scripts.
  • Configure the following Proactive remediation script settings
SettingsValue
Run this script using the logged on credentialsNo
Enforce script signature checkNo
Run script in 64 bit PowerShell HostYes
  • Click on Next
  • Set a scope tag if needed and click on next
  • Assign the Proactive remediation script
  • Now we must change the schedule via the 3 bullets and click on Edit
  • Click on the dropdown list and change the frequency from Daily to Hourly and click on Apply
  • Click on next
  • On the Review + create section, check the configuration, and click on Create

How to install language pack via Company portal via Intune

Install script (Install Dutch language pack.ps1)

Install-Language nl-NL

Uninstall script (Uninstall Dutch language pack.ps1)

Uninstall-Language nl-NL
  • Create an empty folder and place the above PowerShell scripts in the folder.
  • Create the .intunewin package with the Intune content preparation tool with the following command:
{directory of WinappUtil}\IntuneWinAppUtil.exe -c { directory of Language pack files } -s Install Dutch language pack.ps1 -o .\ -q

Note. Click here to download the Win32 content prep tool

  • Now we have the installer with the install and uninstall PowerShell Script we are ready to upload the installer to Intune
  • Open Microsoft Intune
  • In the menu select Apps
  • Under Apps, select Windows
    Or use the following link Windows Apps – Microsoft Endpoint Manager admin center
  • Click on + Add
  • Select the App Type Windows App (Win32) and click on Select
  • Click on the Select app package file and click on the blue directory icon
  • The file explorer will be opened and browse to the .Intunewin installer file that you have created.
  • Click on OK
  • Set the required namedescription, and publisher fields and if needed other optional fields
  • Click on Next
  • Set the following Install and uninstall commands

Install command:

%SystemRoot%\sysnative\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -file "Install Dutch language pack.ps1"

Uninstall command:

%SystemRoot%\sysnative\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -file "Uninstall Dutch language pack.ps1"
  • On the requirements section. Select 64-bit as the operating system architecture and Windows 10 20H2 as the minimum operating system and click on next
  • Select Use a custom detection script as the rules format on the Detection rules section
  • Upload a detection script

 

Script:

$OSInfo = Get-WmiObject -Class Win32_OperatingSystem
$languagePacks = $OSInfo.MUILanguages

if ($languagePacks -contains "nl-NL")
    {
    write-output "Installed"
     Exit 0
    }
    else
    {
    write-output "Not installed"
     Exit 1
    }
  • Set both PowerShell script options (Run script as 32-bit process on 64-bit clients and Enforce script signature check and run script silently) to No
  • Click on Next on the Dependencies section and on Supersedence section click next as well
  • Set a Scope tag if needed and click on Next
  • Assign the application as available or required
  • Click on next. Check the app configuration and click on Create
  • The Language Pack app will be created and uploaded and ready to install
0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.