Change Windows Server Display Language, System Locale and Time Zone (2016/2019/2022)

12 min read 2 views 0
On this page

Windows Server images are usually installed in English, but many teams prefer to work in their own language, and older applications often need the right system locale to display Chinese, Japanese or Cyrillic text without garbled characters. This guide shows how to change the Windows Server display language, system locale, regional formats and time zone on Windows Server 2016, 2019 and 2022. Commands are run in an elevated PowerShell window over RDP or the VNC console of your JUSTG VPS. We use Japanese (ja-JP) as the example; swap in any tag from the table below.

Step 1: Check the current language settings

Start by recording what is configured now, so you can compare after the change:

Get-WinSystemLocale
Get-WinUILanguageOverride
Get-WinUserLanguageList
Get-TimeZone

Windows separates four settings: the display language (menus and dialogs), the user language list (input methods), regional formats (dates, numbers) and the system locale (the code page used by non-Unicode programs). You can mix them, for example an English interface with a Chinese system locale.

Language / regionLanguage tagTime zone ID
Traditional Chinese (Taiwan)zh-TWTaipei Standard Time
Simplified Chinesezh-CNChina Standard Time
Japanese (Tokyo)ja-JPTokyo Standard Time
Korean (Seoul)ko-KRKorea Standard Time
Russian (Moscow)ru-RURussian Standard Time
English (Johannesburg)en-ZASouth Africa Standard Time
Frenchfr-FRRomance Standard Time
Spanishes-ESRomance Standard Time

Step 2: Install the language on Windows Server 2022

Windows Server 2022 includes the Install-Language cmdlet, which downloads the language pack and its features from Windows Update. -CopyToSettings also makes it the preferred display language:

# Windows Server 2022
Install-Language -Language ja-JP -CopyToSettings
Get-InstalledLanguage

The download needs outbound internet access and may take several minutes. If your server uses WSUS or blocks Windows Update, use the offline method in Step 3 instead.

Step 3: Install a language pack on Windows Server 2016 / 2019

On 2016 and 2019 the reliable method is the official Windows Server language pack ISO from Microsoft that matches your exact OS version. Copy it to the server, mount it and install the .cab for your language, either with the lpksetup.exe wizard or with DISM:

# Windows Server 2016 / 2019 (language pack ISO copied to C:\ISO)
Mount-DiskImage -ImagePath C:\ISO\LanguagePack.iso
Get-Volume | Where-Object DriveType -eq 'CD-ROM'

# Option A: graphical installer
lpksetup.exe

# Option B: DISM (adjust drive letter and path to the .cab for your language)
Dism /Online /Add-Package /PackagePath:E:\x64\langpacks\Microsoft-Windows-Server-Language-Pack_x64_ja-jp.cab
Use only the language pack built for your Windows Server version. A pack from a different build fails to install or leaves the interface half translated.

Step 4: Set display language, user languages and system locale

With the pack installed, switch the interface, the language list, the formats and the system locale. The system locale is what fixes question marks or mojibake in older non-Unicode programs:

Set-WinUILanguageOverride -Language ja-JP
Set-WinUserLanguageList -LanguageList ja-JP, en-US -Force
Set-Culture -CultureInfo ja-JP
Set-WinSystemLocale -SystemLocale ja-JP

Step 5: Copy the settings to the welcome screen and new users

So that the login screen and newly created accounts use the same language, copy your settings to the system:

# Windows Server 2022
Copy-UserInternationalSettingsToSystem -WelcomeScreen $true -NewUser $true

# Windows Server 2016 / 2019: open Region settings and use
# Administrative -> Copy settings...
intl.cpl

In the Region dialog on 2016/2019, tick both "Welcome screen and system accounts" and "New user accounts" before you confirm.

Step 6: Change the time zone with Set-TimeZone and restart

Pick the time zone that matches your users or your logs. For example, a Tokyo VPS used by a Japanese team would use Tokyo Standard Time, while a Johannesburg server serving South African customers would use South Africa Standard Time. Then synchronise the clock and restart to apply all language changes:

Get-TimeZone -ListAvailable | Where-Object Id -like "*Tokyo*"
Set-TimeZone -Id "Tokyo Standard Time"
w32tm /resync
Restart-Computer

After the restart, sign in again and run the commands from Step 1 to confirm every value.

FAQ

Can I switch back to English later?

Yes. Run Set-WinUILanguageOverride -Language en-US and the matching commands from Step 4 with en-US, then restart. The extra language pack can stay installed.

Why do some menus stay in English after the change?

Server roles, management tools and third-party software may not be localised, or may need a sign-out to pick up the new language. Make sure you also restarted the server after Step 6.

Does the time zone affect my scheduled tasks?

Yes. Task Scheduler uses local time, so tasks set for 03:00 will run at 03:00 in the new time zone. Review critical jobs after changing it.

If the language pack refuses to install or the interface does not change, submit a ticket to JUSTG technical support with your Windows Server version and the error message.

Was this answer helpful?

Related Tutorials

Windows PowerShell PS> Test-NetConnection -ComputerName 203.0.113.10…PS> nc -vz 203.0.113.10 3389PS> Get-Service -Name TermService Windows Server Remote Desktop Can't Connect to Windows Server VPS: RDP Troubleshooting Guide Fix Remote Desktop (RDP) connection failures on a Windows Server VPS: port 3389 test, firewall, NLA/CredSSP errors and the VNC console. 13 min read 2 Read tutorial Windows PowerShell PS> Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentC…PS> Get-NetTCPConnection -LocalPort 40125 -ErrorA…PS> $port = 40125 Windows Server How to Change the Remote Desktop (RDP) Port on Windows Server Change the Windows Server RDP port from 3389 with PowerShell: registry PortNumber, firewall rules, TermService restart and safe rollback. 12 min read 2 Read tutorial Windows PowerShell PS> Update-HostStorageCachePS> Get-Disk | Select-Object Number, FriendlyName…PS> Get-Partition -DiskNumber 0 | Select-Object P… Windows Server Extend C: Drive on Windows Server After a Disk Upgrade and Initialize a New Data Disk Extend the C: drive on Windows Server after a disk upgrade, fix a blocking recovery partition and initialize a new data disk with PowerShell. 12 min read 1 Read tutorial Windows PowerShell PS> Get-NetAdapterPS> Get-NetIPConfiguration -InterfaceAlias "Ether…PS> Get-NetIPInterface -InterfaceAlias "Ethernet"… Windows Server Add an Additional IPv4 Address and Configure IPv6 on Windows Server Add an extra IPv4 and configure IPv6 on Windows Server via GUI, PowerShell or netsh, with SkipAsSource, gateway, DNS and connectivity tests. 14 min read 2 Read tutorial