How can I stop the remote computer from changing my keyboard layout?

Whenever I open an RDP connection to a remote machine, that machine will be using the English (EN) keyboard layout and I have to constantly switch it back to German.

I use a customized keyboard layout on my workstation and this layout is not present on the remote machine. I assume this to be the cause of the issue.


Solution 1:

Neno Loje mentions this issue (and the solution) in his blog.

In the following registry key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout

Create a new DWORD value IgnoreRemoteKeyboardLayout and give it the value 1.

That should be sufficient to solve your problem. However, there are some known problems with certain Windows versions, as discussed in these knowledgebase articles:

Windows XP

  • The IgnoreRemoteKeyboardLayout registry entry does not work on a Windows XP-based computer

Windows Server 2003

  • The IgnoreRemoteKeyboardLayout registry entry has no effect in Windows Server 2003
  • The terminal server IME keyboard layout differs from the client computer when you remotely log on to a Windows Server 2003 SP1-based terminal server

In addition to that, Remko Weijnen explains on his blog how to even adjust the keyboard profile on the login page.

If you want to change the keyboard layout that is used before logging in (“at the logon screen”) you need to modify the key HKEY_USER\.DEFAULT\Keyboard Layout\Preload:

In the screenshot above the locale id 0413 (Dutch) but you can even add more than one entry and cycle between them with ALT-SHIFT.

A description of the Locale ID’s (LCID’s) can be found in kb 262283.