Managing Windows 11 languages and region settings - MSEndpointMgr (2024)

I have not worked with multi-language Windows for a while, which seems to have changed a lot compared to Windows 10, I am happy that I found Peter Klapwijk’s blog post and his script . If you are still using the XML, maybe it’s time to try out the PowerShell LanguagePackManagement in Windows 11.

Inspired by Peter’s post, I did some tests some tests my own and would like to write down some of my findings.

There are some useful commands in the module, just remember some of them are Alias, and they do the same things.

Managing Windows 11 languages and region settings - MSEndpointMgr (1)

Other International commands can be found in this documentation: https://learn.microsoft.com/en-us/powershell/module/international/?view=windowsserver2022-ps

There are four settings in the “Language & Region” UI:

  • Windows display language. This language will be used in File Explorer and Settings
  • Preferred languages. Microsoft Store apps will appear in the first supported language in the list. Example Company Portal will use the first language in the list. Also input keyboard
  • Country or region. Windows and Apps might use this information to get local content
  • Regional format. Windows and apps might use this for time, and currency based on regional format.
Managing Windows 11 languages and region settings - MSEndpointMgr (2)

What else? The Region Administrative settings.

  • non-Unicode program. Some old or bad applications don’t support Unicode, it might need to change the language to help show the correct characters.
  • Welcome screen and new user account settings. This allows us to copy the current user’s international language settings to the Welcome screen and system accounts, and/or New user accounts.
Managing Windows 11 languages and region settings - MSEndpointMgr (3)

When we want to change the whole OS, for example “installing updates”, “restarting computer”, “Welcome”, “Getting ready”, or File Explorer, start menu, all of these settings are needed to be changed.

Before we change anything, just use some PowerShell command to show the current settings.

Managing Windows 11 languages and region settings - MSEndpointMgr (4)
Managing Windows 11 languages and region settings - MSEndpointMgr (5)
Managing Windows 11 languages and region settings - MSEndpointMgr (6)
Managing Windows 11 languages and region settings - MSEndpointMgr (7)

Install Finnish language

We can use Install-Language -Language “fi-FI” -CopyToSettings or without -CopyToSettings for installing the Finnish language, the language tag can be found in the link Language tag can be found here: https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/available-language-packs-for-windows?view=windows-11#language-packs

Note: Install-language command needs to be run as admin

Managing Windows 11 languages and region settings - MSEndpointMgr (8)

Question: Difference between using CopyToSettings or without?
In my example here, I use CopyToSettings, before I run this command, I have everything in English, as the screenshots showed above. Let’s see again after I have run the command and before I restart the machine.

Managing Windows 11 languages and region settings - MSEndpointMgr (9)

After I restarted the machine

Managing Windows 11 languages and region settings - MSEndpointMgr (10)
Managing Windows 11 languages and region settings - MSEndpointMgr (11)

Results:

  • Install-Langauge did install our desired language
  • Users can now change “Windows display language” to the language we just installed.
  • The additional language we just installed isn’t added to the preferred language list
  • Welcome screen (and system) Display Language and region format are changed. CopyToSettings parameter has changed these settings
  • Non-Unicode language support is changed. CopyToSettings parameter has changed these settings
  • Current user’s settings aren’t changed.
  • New users’ settings aren’t changed
Managing Windows 11 languages and region settings - MSEndpointMgr (12)

Change Windows display language

We can use Set-WinUILangaugeOverride -Language “fi-FI” to change Windows display language to Finnish.

Managing Windows 11 languages and region settings - MSEndpointMgr (13)
Managing Windows 11 languages and region settings - MSEndpointMgr (14)

Adding additional preferred languages

Normally when we want to change Windows display language, we first choose “Add a language” in the Preferred languages, and then the language will show up last in the list. Then when we choose this language from the “Windows display language” list, we will see this language will become the first of the preferred language list.

But since we install the language by using the PowerShell command that runs as admin, we don’t see the language show up in the user’s preferred languages, we only see it shown in the “Windows display language” list. By running the command Set-WinUILangaugeOverride, it only sets the Windows display language and doesn’t add the language to the preferred language list for this user, so we are missing the input locale for this language. That’s why we need another set of commands to add the input locale.

Preferred language input locales can be found here: https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-input-locales-for-windows-language-packs?view=windows-11#input-locales

$OldList = Get-WinUserLanguageList
$UserLanguageList = New-WinUserLanguageList -Language "fi-FI"
$UserLanguageList += $OldList
Set-WinUserLanguageList -LanguageList $UserLanguageList -Force

Managing Windows 11 languages and region settings - MSEndpointMgr (15)
Managing Windows 11 languages and region settings - MSEndpointMgr (16)

After signing out and login again, Windows display language has now changed.

Managing Windows 11 languages and region settings - MSEndpointMgr (17)

Change Region and Region format

We can use Set-WinHomeLocation -GeoId “77” command to change “Country or region” to “Finland”, and use Set-Culture -CultureInfo “fi-FI” command to change the regional format to Finland.

GeoID can be found here: https://learn.microsoft.com/en-us/windows/win32/intl/table-of-geographical-locations

Managing Windows 11 languages and region settings - MSEndpointMgr (18)
Managing Windows 11 languages and region settings - MSEndpointMgr (19)

After we have made all the changes above, what do the regional administrative settings look like? Current user’s settings are all changed to Finnish (Suomi), The Welcome screen is 80% changed, and new users’ settings are untouched.

Managing Windows 11 languages and region settings - MSEndpointMgr (20)

Copy the current user setting

One last step, we copy the current user’s international settings to the Welcome screen and system, and new users.

Copy-UserInternationalSettingsToSystem -WelcomeScreen $True -NewUser $True

Managing Windows 11 languages and region settings - MSEndpointMgr (21)

Restart the machine, and we see the changes are applied.

Managing Windows 11 languages and region settings - MSEndpointMgr (22)

Now you have successfully added a new language pack to your Windows 11 and changed everything to that language. One more thing, the Company portal will use the first language in the preferred language list. It will change its language in time (maybe not immediately).

Wipe the device

Remember this? System language (Welcome screen display language). If I wipe the machine from Microsoft Intune or reset the machine locally, the default OS language is Finnish, and language packs will be still in the machine even if you wipe/reset the device.

Managing Windows 11 languages and region settings - MSEndpointMgr (23)
Managing Windows 11 languages and region settings - MSEndpointMgr (24)

If you have Autopilot profile Langauge (Region) set to “Operating system default”, the whole OS will be Finnish, so your local Administrator account will show as “Järjestelmänvalvoja“, not English “Administrator”. If you have some scripts or Intune User account control policy using the name “Administrator”, you will have some issues. It means, if you are handling a multi-language environment, you need to always consider using SID as much as possible, not the name.

Managing Windows 11 languages and region settings - MSEndpointMgr (25)
Managing Windows 11 languages and region settings - MSEndpointMgr (26)

If you have Autopilot profile Language (Region) set to “User select”, the user will see this language selection in OOBE, and the default selected language is the “System Language” we had before we wiped the device.

Managing Windows 11 languages and region settings - MSEndpointMgr (27)
Managing Windows 11 languages and region settings - MSEndpointMgr (28)

Another option is, in the Autopilot profile, to use Language (Region) to English. Then use script or IntuneWin32App to change the region, language, input, and timezone as you desire later.

With or without CopyToSettings?

The Install-Language command has CopyToSettings parameter, it is optional. So if you want to change the Non-Unicode language settings, you need to use this CopyToSettings parameter. If you don’t want to change Non-Unicode language setting, then don’t use the CopyToSetting parameter.

Change System Language

Change System language can use Set-SystemPreferredUILanguage, it changes the Welcome screen display language and system language. Now if you look at my script, you might notice I didn’t use this command at all. Why? Because I used the Set-WinUILangaugeOverride to set the current user’s Windows Display language, then I used Copy-UserInternationalSettingsToSystem -WelcomeScreen $True to copy the current user’s Windows display language to the Welcome screen and System. In my test, regardless I run the Set-SystemPreferredUILanguage before or after I run Copy-UserInternationalSettingsToSystem -WelcomeScreen $True without restarting the computer in between, the Copy-UserInternationalSettingsToSystem -WelcomeScreen $True always wins. Now remember, it is without restarting between these two commands, if I would run first Copy-UserInternationalSettingsToSystem -WelcomeScreen $True, then restart the machine, then run again Set-SystemPreferredUILanguage, then restart the machine, you will see the Set-SystemPreferredUILanguage language would apply.

Autopilot and ESP

Now finally we talk about Autopilot and ESP. Change MUI requires the machine to restart, it doesn’t matter if you do this in PowerShell or from Window UI itself. Can you change these settings and apply the settings without a restart? No, simply just no.

So what do we do in Autopilot?

  • Modify the script and add some of your detection methods. Remember to leave the exit code as 3010
  • Pack the script as Intune Win32App
  • Use the Install command to make sure it runs the script in 64bit:
    %windir%\SysNative\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -file Invoke-ChangeDefaultLanguage.ps1
  • Chose 3010 Soft reboot
  • Assign this package to device group, not user group. When assigning the app to the device group, this app will be installed during device setup, and make sure to use the Enrollment Status page (ESP) to track this app. Intune triggered reboot is supported during device setup, and not supported in User state Account setup.

You will see the language changed during the ESP state, and you might see it change between two different languages during the whole process, but it will eventually apply the language you have configured in your script.

Note, The Install-Language takes a long time to download and install the language pack and feature package, I sometimes had to wait almost 20 minutes until it finished installation.

Managing Windows 11 languages and region settings - MSEndpointMgr (29)

A short video of my User-Driven Autopilot in fast mode.

What about those devices are already installed and has existing user?

If the device is already provisioned/Enrolled, the whole OOBE provisioning state is already gone. So running the script in System context will not change existing users’ profile language settings. Which means you will need two scripts. One for installing language and copying the settings to system and new users, same as the one that we use during Autopilot. Then use another script run as user context, and change whatever you need to change for the user.

Since the user is already using the machine, and the user might have preferred input locale, I would consider not enforcing the newly installed language as the first of the preferred language, but set it as the last of the list. Please modify the script as you see fit for user context.

Enterprise State Roaming

Just a side note here, if you are using the Enterprise State Roaming feature and sync language settings, you might see some languages added back to the preferred language list.

Finally, you can find the script in my Github Gist here. Hope you enjoy this post!

Views: 601

Intune Language Pack PowerShell Windows 11

Managing Windows 11 languages and region settings - MSEndpointMgr (2024)
Top Articles
Latest Posts
Article information

Author: Amb. Frankie Simonis

Last Updated:

Views: 6494

Rating: 4.6 / 5 (56 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Amb. Frankie Simonis

Birthday: 1998-02-19

Address: 64841 Delmar Isle, North Wiley, OR 74073

Phone: +17844167847676

Job: Forward IT Agent

Hobby: LARPing, Kitesurfing, Sewing, Digital arts, Sand art, Gardening, Dance

Introduction: My name is Amb. Frankie Simonis, I am a hilarious, enchanting, energetic, cooperative, innocent, cute, joyous person who loves writing and wants to share my knowledge and understanding with you.