Set the User Language List and Keyboard Layouts with PowerShell

Replace the current user's language/keyboard list in one shot with New-WinUserLanguageList and Set-WinUserLanguageList -Force.

WindowslanguagekeyboardpowershellMedium risk
Build the list with $List = New-WinUserLanguageList zh-CN, add more with $List.Add("en-US"), then apply with Set-WinUserLanguageList $List -Force.

01Command

Command
$ $List = New-WinUserLanguageList zh-CN; $List.Add("en-US"); Set-WinUserLanguageList $List -Force

02What it does

The user language list is what the Win+Space language bar cycles through and where each language's default keyboard layout comes from. Set-WinUserLanguageList replaces the entire list, so the safe pattern is to build a fresh list with New-WinUserLanguageList, add languages in the order you want (first = default), then apply with -Force to skip the confirmation prompt. After applying, Windows may download the keyboard/input resources for newly added languages in the background.

03Risk

RiskMedium risk
!Warning: This overwrites your whole language list, including custom per-language keyboard layouts you configured by hand. -Force skips the confirmation, so double-check the order before running it.

04Undo

✓No undo needed — this command does not change persistent state.

05Sources

  • Set-WinUserLanguageList
    Microsoft Learn · vendor-doc · 2026-09-17
    Evidence: Set-WinUserLanguageList replaces the current user's ordered language list (including default keyboard layouts); New-WinUserLanguageList creates such a list.

Last verified: 2026-09-18 · Category: System & Settings

06Related solutions