Windows, Windows 10, Windows 7, Windows 8, Windows Server, Windows Vista, Windows XP
- 12.12.2018
- 21 656
- 5
- 13.04.2022
- 24
- 21
- 3
- Содержание статьи
- Описание проблемы
- Решение проблемы
- Комментарии к статье ( 5 шт )
- Добавить комментарий
Описание проблемы
Довольно распространенной проблемой является возникновение на удаленном компьютере дополнительных раскладок клавиатуры, которые носят названия вроде «RUS US», «РУС RU», «ENG RU» и мешают корректной работе пользователей.
Решение проблемы
Решить такую проблему достаточно легко, нужно лишь в внести изменения в реестр терминального сервера — а именно, создать параметр типа DWORD32 под названием IgnoreRemoteKeyboardLayout
, который должен находиться в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
. Присваиваем ему значение 1
(00000001), перезаходим на сервер и наслаждаемся отсутствием дополнительной раскладки.
Для того, чтобы автоматизировать процесс редактирования реестра, можно создать простой reg файл следующего содержания:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"IgnoreRemoteKeyboardLayout"=dword:00000001
О том, как создать reg файл можно прочесть в этой статье.
В «нормально» сконфигурированной Windows 10 доступно два языка ввода и две раскладки переключения языков — русский и английский. Конечно, если у вас установлена Windows 10 не «для одного языка», вы можете добавить сколько угодно локализаций и столько же раскладок, но речь пойдет вовсе не об этом. Что делать, если у вас невесть откуда в языковой панели появилась дополнительная раскладка диалекта одного языка как в показанном на скриншоте примере?
Казалось бы, в чём тут проблема, разве лишнюю раскладку нельзя удалить через языковые настройки?
Нажали на этой же панели «Настройки языка», открыли параметры языка с лишней раскладкой.
Выбрали ненужную клавиатуру и кликнули «Удалить».
Проблема только в том, что стандартным способом раскладка отказывается удаляться, а если и удаляется, то после перезагрузки компьютера появляется в языковой панели повторно.
В таких случаях иногда рекомендуют очистить содержимое каталога Preload в ключе реестра HKEY_USERS\.DEFAULT\Keyboard Layout\Preload и перезагрузить компьютер, но это приводит к тем же результатам.
Решить эту проблему действительно можно путем правки реестра, только вот работать нужно с другими ключами. Но еще важнее понимать, что именно стало причиной такого поведения Windows 10. А причина в том, что ваш компьютер скорее всего синхронизирован с каким-то другим устройством, на котором включена дополнительная раскладка при условии, конечно, что вы используете учетную запись Microsoft.
Поэтому, перед тем как приступать к дальнейшим действиям, потрудитесь отключить синхронизацию языковых настроек в разделе «Учетные записи» приложения «Параметры».
Если настройки синхронизации у вас по какой-то причине недоступны, откройте командой regedit редактор реестра, разверните ключ HKLM\SOFTWARE\Policies\Microsoft\Windows\SettingSync и создайте справа два параметра типа DWORD: DisableSettingSync со значением 2 и DisableSettingSyncUserOverride со значением 1 (готовый твик прилагаем по ссылке disk.yandex.ru/d/N9lWT2O1-FotFw).
После этого перезагрузитесь и попробуйте удалить лишнюю раскладку через приложение Параметры как было показано выше.
Сделать это можно, кстати, и через реестр, предварительно узнав на сайте (таблице) Майкрософт docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-language-pack-default-values код лишней языковой панели.
В нашем примере это 0x00010409, что соответствует индийской раскладке.
Проследуйте по указанным ключам реестра.
И удалите параметры, в качестве которых задан код дополнительной раскладки.
На всякий случай проверьте ключи реестра и на этом изображении.
Если мультистроковый параметр languages содержит лишние раскладки, отредактируйте его. Для этого кликаем по нему два раза мышкой и удаляем в открывшемся окошке ненужную раскладку.
Вот и всё, новая конфигурация вступит в силу после перезагрузки компьютера.
Загрузка…
Иногда такое случается, что подключаясь к разным серверам по RDP со своего ноутбука, замечал, что появлялась какая-то лишняя раскладка «РУС US, Русский США клавиатура», которая жутко бесила. Из-за неё я печатал на английском, переключал на русский и всё равно продолжал печатать на английском. Запутывался окончательно, потому что не мог обратно переключиться на русский. То есть теперь я переключал не РУС на ENG и обратно, а ENG, потом РУС-US и только потом РУС-РУС. Иногда для этого приходилось использовать не только Alt+Shift, но ещё и Ctrl+Shift. В этой статье я расскажу, как убрать раскладку клавиатуры РУС US раз и навсегда
Как я убирал лишнюю раскладкой клавиатуры РУС US
Ранее в своём другом блоге я выкладывал решение для удаления английской США раскладки с русского языка. Она подходила для Windows Server 2008, 2008 R2 и даже 2012 и 2012R2. Достаточно было зайти в настройки раскладки, сначала добавить фактически эту раскладку, а потом её удалить. Проблема решалась на какое-то время, многим это помогло. Но это было временное решение, у многих затем она появлялась повторно, да к тому же ещё и в Windows Server 2016 и 2019 пропала возможность добавить английскую qwerty раскладку к русскому языку. Раз я и сам начал переход на современные версии Windows Server, то решил разобраться с этой проблемой.
Откуда появляется qwerty раскладка в русском языке?
Опытным путём стало понятно, что раскладка РУС-US появляется в основном на серверных версиях Windows и, в большинстве своём, при подключении RDP. Временное удаление, а затем повторное появление даёт понять, что проблема появляется при установлении новых подключений. По аналогии могу привести в пример проблему с принтерами в старых версиях Windows Server, когда появлялись некие фантомные принтеры и могли зависнуть. Возможно, проблема появляется, когда ENG раскладка нашего клиента на сервере определяется как дополнительная РУС-US и падает в Русский язык, но как США клавиатура. Я пока не проверял теорию о том, замешан ли тут Punto Switcher, поэтому есть только факт, что Пунто установлен на моём ноутбуке + у меня также появляются проблема с раскладками.
Параметры языков ввода Панель управления — управление языками ввода
При подключении, к сожалению я не нашёл настроек, передавать ли раскладки с клиента на сервер, но нашёл интересный параметр, отвечающий за приём этих перенаправлений раскладки со стороны сервера. Хранится он в реестре, в ветке
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
Параметр называется IgnoreRemoteKeyboardLayout, который так и переводится «Игнорировать удалённые раскладки клавиатуры». Соответственно указывая ему параметры 0 или 1 мы выключаем его или включаем. По умолчанию он выключен, а значит он не игнорирует раскладки и принимает их с клиентов. Если на серверы уже добавлены обе раскладки (РУС и ENG), то и смысла в добавлении клиентских не имеется. Поэтому включаем игнорирование.
Делается это через реестр.
- Подключаемся к удалённому рабочему столу
- Нажимаем кнопку Пуск
- вводим regedit
- справа выбираем Запуск от имени администратора
- открываем путь HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
- создаём параметр IgnoreRemoteKeyboardLayout
- для этого нажимаем справа Правой Кнопкой Мышки
- выбираем Создать
- далее Параметр DWORD (32 бита)
- Новый параметр #1 переименовываем в IgnoreRemoteKeyboardLayout
- меняем его значение с 0 на 1, открыв его двойным щелчком
- закрываем все программы, сохраняем документы
- завершаем сеанс, заново переподключаемся.
- Теперь у вас только русская раскладка РУС и английская ENG
Для тех, кому нужны картинки, ловите:
пуск — regedit от имени администратора создаём новый параметр переименовываем параметр присваиваем ему значение 1
Есть такой нюанс, что реестр могут править только администраторы, поэтому, если у вас простая учётная запись без администраторских прав, то попросите вашего сисадмина сделать описанное в статье за вас. Достаточно просто прислать ему ссылку на эту статью.
Второй способ как всё это провернуть — через reg-файл
Также можно создать reg-файл в Блокноте, затем простым двойным щелчком добавить в реестр без копания по его веткам и параметрам. Для этого выполняем следующее:
Открываем Блокнот, Вставляем туда следующий текст
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "IgnoreRemoteKeyboardLayout"=dword:00000001
- В меню выбираем Файл — Сохранить как…
- В выпадающем списке Тип файла выбираем Все файлы (*.*)
- Имя файла пишем любое название, но в конце добавляем .reg
После этого вы получите файл, запускаете его, соглашаетесь с предоставлением администраторских прав, выполняете завершение сеанса и потом заново заходите. Готово, у нас получилось убрать раскладку клавиатуры РУС US!
Для простоты я выложил файлик на Яндекс.Диск, откуда вы можете скачать и просто добавить в реестр двойным кликом.
Кстати, вы заметили, что с каждым обновлением Windows 10 всё труднее попасть в старую добрую панель управления? В статье Как открыть Панель управления в Windows 10 я выкладываю несколько лайфхаков
Отблагдарить автора статьи также можно переводом, +100 вам в карму!
Решение проблемы одно: создаём скрипт (PowerShell ISE), в который добавляем нужные языки через запятую.
Вызываем реестр через Win+R командой regedit!
1. Я создал в корне диска С:/fix_languages.ps1
Get-WinUserLanguageList
Set-WinUserLanguageList -LanguageList ru,pl,en-US -Confirm
Set-WinUserLanguageList -LanguageList ru,pl –Confirm
Команды просто добавят в список языков ваши. Захотите ещё один язык, добавляем новый язык (в последнюю строчку!) после запятой и активируем снова: …ru, pl, ch … – пример!
Но! Во второй строчки постарайтесь ввести тот язык, который у вас прилетает из космоса (который хотите удалить).
2. Идём в реестр, по пути:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
И добавляем строковый параметр с путём (кавычки необязательно): «C:\fix_languages.bat»
Название любое.
Путь должен быть ваш. При загрузке всё сработает, но можно вызывать вручную из каталога.
Потом! Выделяем всё и нажимаем F8! Ну то есть делаем это вручную!
Всё…
Всё, что можно сделать.
Можете, конечно, ходить в панель управления, добавлять язык за каждым разом и удалять.
Нет другого варианта. Чистка реестра и выдуманные строковое параметры вам не помогут!
Это проблема системы, не ваша.
В Windows 11 скрипты как-то ещё работают, раз на 2. То сработает, то нет.
Приходится запускать его вручную. Здесь скрипты вообще не работают.
PowerShell сделан таким образом, чтобы пользователь всегда запускал его вручную.
Вот когда, наконец-то, соединят CMD и PowerShell, что является полным бредом, будут скрипты работать. Пускай удаляют CMD, мы будем сидеть на PowerShell и будем счастливы.
CMD оставили только потому, что он простой и он им нравиться! Они его просто не бояться…
А пока предлагаю написать несколько потоков для связи CMD и PowerShell, чтобы данная программа запускалась автоматически и сама себя выполняла. Ну как вам?
Нет сегодня системы. Есть только радио!
Ещё добавлю: забудьте про Linux. Хватит мучаться с ним. Это система СЛОМАНА!
Linux написан на JAVA. Там JVM подключается, а JVM не работает. Их виртуальная машина изначально работала плохо по той причине, что JAVA язык несовершенный (испорченный с самого начала). Здесь ничего не поделать, нужно просто писать новую систему на новом языке. Моё предложение: С !
Так вот Android и iOs, MacOS (~ Linux) туда же… Там тоже JVM.
Вспоминаем историю с дохлым Symbian (изначально, в проекте: Deli). Туда тоже запихнули JVM и на теперешний момент эта система не работает.
Microsoft передаем привет, потому что данную проблему они не могут решить с 1998 года, ещё с Windows Net x86.
Ситуация: подключаемся к терминальному серверу и получаем странные раскладки «RUS US» или «ENG RU», при этом их невозможно ни отключить ни удалить.
Решение: https://social.technet.microsoft.com/Forums/ru-RU/6231938b-44d8-4bca-8a2a-542c49d19fdd/-rus-us?forum=WS8ru
Добавляем в ветку реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout параметр IgnoreRemoteKeyboardLayout типа DWORD равный 00000001
windows,
terminal server,
неудаляемая раскладка,
RUS US,
ENG RU