One of our readers recently inquired about how to resolve a problem with his language bar when utilising an RDP session. In an RDP session, it does not change the keyboard layout. Although the language icon in the taskbar changes, a new icon appears next to it, requiring the user to change the input language manually. It’s a very inconvenient situation, so we must address it.
When using a Remote Desktop connection to Windows Server 2016, 2012/R2, 2008 R2, or Windows 10 in a multilanguage environment, you may notice that your local keyboard layout is displayed in the RDP window (from the computer where you run the remote desktop client), and you can’t change the keyboard layout as usual using Alt-Shift or Ctrl-Shift (the input language doesn’t switch). To change the input language, the user must first click on the keyboard icon in the tray’s language bar, then change the input language from the context menu that appears. It’s possible that the user will see not two, but three or even more keyboard layouts in a terminal session.
The user must logoff and reconnect to the RDP/RDS server to resolve this issue (albeit this does not always work).
This issue is caused by Windows’ functionality of automatically detecting the RDP client’s keyboard layout and the default language used by the RDP client. If the RDP client and server have differing current keyboard settings when connecting, you may have trouble switching between input languages. When logging in using RDP, the described problem does not occur if the client and server use the same languages.
This flaw initially surfaced in Windows Server 2003 (and is still present in all versions up to and including Windows Server 2016) and has yet to be resolved.
You can reconfigure your remote RDP/RDS server so that it ignores the keyboard layout with which remote RDP clients connect to it. This setting is not in the Windows GUI and you can configure ignoring the remote keyboard layout only through the registry.
- On the RDP (RDS) server run Registry Editor as an administrator (click on the Start button and then type in regedit).
- Open up Registry Editor and navigate to the registry key HKLM\System\CurrentControlSet\Control\Keyboard Layout.
- Here you have to create a new DWORD value. Give it IgnoreRemoteKeyboardLayout name and double-click on it. As default the value of this key is 0, but we need to change it from 0 to 1.
- Once it is done, close Registry Editor and reboot remote server (computer).
You can also create a text file ignorekblayout.reg with the following text:
Windows Registry Editor Version 5.00
To apply the settings, simply double-click the reg files and agree to adding data to the registry.
Or use the command:
REG ADD «HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout» /v IgnoreRemoteKeyboardLayout /t REG_DWORD /d 1