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.
01Command
$ $List = New-WinUserLanguageList zh-CN; $List.Add("en-US"); Set-WinUserLanguageList $List -Force02What 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
04Undo
✓No undo needed — this command does not change persistent state.
05Sources
- Set-WinUserLanguageListEvidence: 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
Search inside text files and logs with regex, returning file, line number and match.
Create or update a .zip from any files or folder contents straight from PowerShell.
A built-in PowerShell one-liner that answers 'is port 5432/3389/443 actually open through this network?' — no telnet client needed.