You press @ and get ", or Z and Y swap places. When characters come out wrong in a Remote Desktop session, the server is using a different keyboard layout from the one on your keyboard. This guide explains why it happens and how to set the correct layout on your server so it stays put.
Before you start
- A connection to your server at
203.0.113.10:3389. - Know your physical layout, for example United Kingdom, German or French (AZERTY). On your own Windows PC it is shown in Settings → Time & language → Language & region.
- Administrator rights on the server if you want to change the sign-in screen or all new users.
Why the layout changes
When you connect, the Remote Desktop client tells the server which keyboard layout your PC is using. The server tries to use the same one in your session.
- If that layout is installed on the server, it usually works.
- If it is not installed, Windows falls back to the server's default, often US.
- If the server has several layouts, an accidental Alt + Shift or Win + Space switches between them mid-session.
- The sign-in screen uses the system default, so the password you type there can be affected even when your session is correct.
Mac users have an extra layer: the Mac keyboard has to be mapped to a Windows layout. See Fix Mac keyboard shortcuts in Remote Desktop.
Add your layout on the server
Sign in to the server and do this inside the Remote Desktop session.
Windows Server 2022 and 2025
- Open Settings → Time & language → Language & region (on some builds, Language).
- Under Preferred languages, click the ... or Options next to your language. If your language is not listed, click Add a language first.
- Under Keyboards, click Add a keyboard and choose your layout.
Windows Server 2019
- Open Settings → Time & Language → Language.
- Select your language, click Options, then Add a keyboard.
With PowerShell
This sets English (United Kingdom) with the UK layout as the only language for the current user:
$list = New-WinUserLanguageList en-GB
Set-WinUserLanguageList $list -Force
Get-WinUserLanguageListReplace en-GB with your language tag, for example de-DE or fr-FR. The last command shows the result, including the InputMethodTips value for the keyboard.
Warning: Set-WinUserLanguageList replaces the whole list for your user. If you need more than one language, add them all in the list, for example New-WinUserLanguageList en-GB followed by $list.Add('de-DE').
If you need a full display language rather than only a keyboard, see Install a language pack on Windows Server.
Remove layouts you do not use
Extra layouts are the main cause of sudden switches.
- In Settings → Time & language → Language & region, open the options for each language.
- Under Keyboards, remove every layout you do not use.
- Remove whole languages you never use with the ... menu or the Remove button.
With one layout left, there is nothing to switch to by accident.
Set the default input method
- Go to Settings → Time & language → Typing → Advanced keyboard settings. On Windows Server 2019, search for Advanced keyboard settings in Settings.
- Under Override for default input method, choose your layout instead of Use language list.
Fix the sign-in screen too
So that your password is typed with the right layout:
- Press Win + R, type
intl.cpland press Enter. - Open the Administrative tab and click Copy settings.
- Tick Welcome screen and system accounts and New user accounts, then click OK.
Windows may ask you to restart. Plan the restart for a quiet time if programs are running.
Stop accidental switching
- In Advanced keyboard settings, click Input language hot keys.
- On the Advanced Key Settings tab, select Between input languages and click Change Key Sequence.
- Set both options to Not Assigned and click OK.
You can also tick Use the desktop language bar when it's available in Advanced keyboard settings. The language bar shows the current layout on the taskbar, so you see at once when it changes.
Note: Win + Space still switches layouts if more than one is installed. Removing extra layouts is the reliable fix.
Check it works
- Sign out of the server fully and connect again.
- Open Notepad and type the keys that were wrong, such as
@ " # \ |or letters with accents. - Check the taskbar or language bar shows your layout code, for example
ENG UK.
In PowerShell, confirm what the session uses:
Get-WinUserLanguageList | Select-Object LanguageTag, InputMethodTipsTroubleshooting
- Layout is right in Notepad but the password fails at sign-in: the welcome screen uses the system default. Copy settings to the welcome screen as shown, or type the password in Notepad to check which characters you get.
- Layout resets to US at every connection: your PC's layout is not installed on the server. Add exactly the same layout the client uses.
- Layout changes mid-session: several layouts are installed and a hotkey was pressed. Remove extras and turn off the hotkeys.
- Special keys still wrong on a Mac: the mapping is on the Mac side. Check Windows App keyboard settings.
Next steps
- Learn the session shortcuts: Keyboard shortcuts inside a Remote Desktop session.
- Get a desktop with full admin control: Windows Admin RDP.
