Розкладка клавіатури в RDP-сеансі Windows Server 2008 R2

После ввода в эксплуатацию терминального сервера под управлением, прости господи, Windows Server 2008 R2, обнаружилась следующая проблема: периодически у подключающихся по протоколу RDP (удаленный рабочий стол) пользователей перестает переключаться раскладка клавиатуры. В системном трее язык переключается как обычно (к примеру, с RU на EN), но при этом ввод продолжает оставаться в раскладке RU, а рядом со значком EN появляется значок в форме клавиатуры, кликнув на который мышью можно уже вручную в появившемся контекстном меню изменить язык ввода – и вот тогда он действительно заменится на выбранный.

Подобное непотребство происходит в том случае, если в момент подключения у клиента и сервера различаются текущие раскладки клавиатуры. Если в момент входа языки выбраны одинаково, то описанная проблема не возникает.

Есть и решение – можно заставить сервер игнорировать раскладку клавиатуры, с которой производилось клиентское подключение. К сожалению, разработчики из Microsoft не удосужились добавить графический интерфейс для этой опции, поэтому потребуется вносить изменения в реестр вручную.

  1. Открываем редактор реестра (regedit.exe);

  2. Открываем ключ HKLM\System\CurrentControlSet\Control\Keyboard Layout;

  3. Создаем параметр IgnoreRemoteKeyboardLayout (REG_DWORD) и присваиваем ему значение “1”;

  4. Перезагружаем сервер (НЕ ОБЯЗАТЕЛЬНО, достаточно перезагрузки сеанса).

Теперь язык ввода всегда должен переключаться по комбинации заданной комбинации клавиш, без необходимости клацания мышью.

PS: Описанное актуально для английской версии WinServ2008R2 + русскоязычного MUI; возможно, для других комбинаций языков поведение этой чудо-системы отличается.