Сегодня я расскажу, как работает язык ввода до входа в систему и после него, а также разберу настройку в специфических случаях с помощью групповой политики. Эта запись продолжает серию статей о тонкостях языковых настроек.
[+] Сегодня в программе
Как настроить язык ввода по умолчанию после входа в систему
Вы вошли в систему, открыли меню Пуск и начали печатать. Какой язык вы видите в поле ввода, тот и задан по умолчанию. Из коробки он соответствует верхнему предпочитаемому языку, но вы можете переопределить его в дополнительных параметрах клавиатуры. Смотрите также Как грамотно настроить язык интерфейса Windows, магазинных приложений и ввода по умолчанию.
Как работает язык ввода по умолчанию на экране входа в систему
Исторически предпочтения языка ввода на экране приветствия задаются для всех пользователей в разделе HKEY_USERS (освежить память на предмет HKU vs HKCU вам поможет мой разбор 2009 года).
[HKEY_USERS\.DEFAULT\Keyboard Layout\Preload] "1"="00000409";EN "2"="00000419";RU
Однако начиная с Windows 8 поведение изменилось и теперь учитывает языковые предпочтения каждого пользователя, нежели форсирует один язык для всех сразу.
Язык ввода по умолчанию, заданный в своей учетной записи, одновременно определяет ее настройки до и после входа в систему.
Когда вы явно указываете язык в дополнительных параметрах клавиатуры, изменение ожидаемо записывается в параметр InputMethodOverride
раздела HKCU\Control Panel\International\User Profile
. Однако система также меняет значения параметров в разделе реестра HKCU\Keyboard Layout\Preload
.
Изменения в разделе HKCU означают, что конфигурация одной учетной записи не влияет на другие. Например, в системе две учетные записи – у первой язык ввода по умолчанию английский, а у второй — русский. Если на экране входа вы выберете первую, у нее будет английский язык, а если вторую – русский.
При этом настройки HKCU преобладают над HKU!
Поэтому только административным копированием (control intl.cpl,,1
) или внесением изменений в раздел реестра HKU (что одно и то же) у вас не получится задать единый язык на экране входа для всех пользователей.
То же самое верно и для попыток настроить разные языки для одного пользователя.
Как настроить разные языки ввода на экране входа в систему и после входа
Из описания выше вытекает нестыковка в одном сценарии. Если у человека пароль учетной записи задан на английском языке, а в системе он хочет иметь русский язык ввода по умолчанию, то не вполне очевидно, как добиться желаемого результата.
Так ли это необходимо
Мне понятен сценарий, но желание странное, на мой взгляд. Есть пара способов обойтись без удовлетворения специальных потребностей.
- Можно использовать цифровой ПИН-код, что вполне приемлемо в домашних условиях. Я понимаю, что любителей сложных паролей это не устроит, но в то же время с трудом представляю, почему у таких опытных пользователей язык ввода в ОС русский ;)
- Можно менять не язык ввода на экране входа, а язык пароля, т.е. установить пароль пользователя на предпочитаемом языке! В самом деле, если вы настроили русский язык ввода после входа в систему, то зачем вам пароль на английском?
Если желание задать разные языки непреодолимо или в организации требуется установить всем на экране входа английский язык, читайте дальше!
Решение: групповая политика
Несколько читателей сообщили, что описанное далее решение работает нестабильно или совсем не работает в Windows 10 20H2. Я не смог воспроизвести проблему у себя на 20H2 и 21H1. Если у вас не работает групповая политика, мне нечем помочь. Заносите баг в центр отзывов и/или пишите в техподдержку Microsoft.
Задача решается с помощью групповой политики Disallow copying of user input methods to the system account for sign in, которая появилась в Windows 8 наряду с новым поведением. Из официального описания:
Этот параметр политики предотвращает автоматическое копирование пользовательских методов ввода в системную учетную запись для использования на экране входа.
Формулировка не совсем точная, потому что копирование выполняется не только в системные аккаунты (что не существенно), но и на экран входа пользователя. Кстати, политика сломалась в версии Windows 10 1709, но ее починили в 1809.
Включить политику можно в gpedit.msc или в реестре, например, из командной строки от имени администратора:
reg add "HKLM\Software\Policies\Microsoft\Control Panel\International" /v BlockUserInputMethodsForSignIn /t REG_DWORD /d 1 /f
При этом вам надо учитывать, что политика фиксирует язык, настроенный для экрана входа в систему, т.е. в HKU. Администратор, конечно, может поменять его в любой момент. Но если в системе есть пользователи с паролями на разных языках, кому-то из них придется переключать раскладку каждый раз.
Настройка
Вы можете просто импортировать приведенный ниже REG-файл и сразу же перезагрузить ОС.
Windows Registry Editor Version 5.00 [HKEY_USERS\.DEFAULT\Keyboard Layout\Preload] "1"="00000409";EN "2"="00000419";RU ;Disallow copying of user input methods to the system account for sign in [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Control Panel\International] "BlockUserInputMethodsForSignIn"=dword:00000001
Вручную действуйте так:
- Включите политику «Запретить копирование пользовательских методов ввода в системную учетную запись для входа» и перезагрузитесь.
- В Параметрах выберите язык ввода, который вы хотите задать на экране входа для всех пользователей и скопируйте настройки текущего пользователя с помощью административных языковых параметров (
control intl.cpl,,1
)
или
Задайте желаемые параметры вHKEY_USERS\.DEFAULT\Keyboard Layout\Preload
. - В параметрах задайте язык ввода, который вы хотите иметь после входа в систему в своей учетной записи.
Теперь язык ввода на экране приветствия не будет меняться у пользователей в зависимости от языка ввода, который они задали в Параметрах.
Замечание о языке ввода на экране блокировки
Рассматриваемые выше параметры реестра и политика распространяются на экран входа, но не на экран блокировки.
Когда пользователь блокирует учетную запись, язык ввода по умолчанию на экране блокировки будет тем, который был на момент блокировки.
Поведение зависит от того, включена ли у пользователя настройка Позволить выбирать метод ввода для каждого окна приложения (первая картинка в статье), которая выключена по умолчанию.
- Если настройка выключена, на экран блокировки проецируется язык ввода последнего активного приложения. Допустим, у пользователя русский язык ввода по умолчанию. Он печатал в Word на английском языке, а потом заблокировал аккаунт (или сработала политика блокировки). В этом случае на экране блокировки будет английский язык, а не русский.
- Если настройка включена, экран блокировки принимает язык оболочки — панели задачи и меню Пуск. Поэтому на этом экране язык всегда будет тот, что задан у пользователя в качестве языка ввода по умолчанию.
Мне неизвестен способ форсирования конкретного языка на экране блокировки. Если знаете, сообщите, и я добавлю его в статью. В качестве обходного пути следует включить настройку и устанавливать пароль на предпочитаемом языке ввода.
Заключение
Решение написать в блог я принял после очередного вопроса, как это нередко бывает. Поведение далеко не новое, но любопытное, согласитесь. И оно заслуженно пополнило большую коллекцию нестыковок в блоге.
Если честно, я сам узнал об изменении, только когда в форуме люди сообщили о неработающей политике. У меня всегда задан английский язык ввода, а ставить какой-то другой язык на экран входа даже мысли не возникало. Поэтому сам я наступить на грабли не мог. Но да, меня бомбит, когда сажусь за чужой ПК с русским языком ввода по умолчанию :) А вас?
Какой у вас язык ввода по умолчанию после входа в систему?
- Английский в локализованной ОС (65%, голосов: 213)
- Английский в английской ОС (19%, голосов: 62)
- Не английский в локализованной ОС (14%, голосов: 45)
- Не английский в английской ОС (1%, голосов: 3)
- Другое / Моего варианта тут нет (1%, голосов: 3)
Проголосовало: 326 [архив опросов]
Andrew Lobzanoff
Мне кажется, ничего странного в подобном сценарии нет в корпоративной среде. Пароли латиницей часто стандарт де факто во многих организациях, сложившийся исторически, или по причинам технических ограничений. При том, что основная масса юзеров отнюдь не админы и работает с русскоязычными документами. Конечно, переключать язык при входе несложно, но бесит, тем более когда до этого они работали в семерке и им не приходилось этого делать.
Vadim Sterkin
В общем, я и пишу
Но раз вы про стандарт паролей латиницией заговорили…
1. Чем обусловлен этот стандарт и как он форсируется?
2. Какие технические ограничения вы знаете у кириллических паролей в Windows?
AndrewTishkin
Как одна из версий, откуда ноги растут.
У нас в домене логины на латинице, соответственно из этого вытекает, что и пароли с латинскими буквами — чтобы избежать лишнего переключения языка и путаницы в голове
Vadim Sterkin
Это понятная версия. Но это зависит еще от того, отображаются ли пользователи на экране приветствия. В том смысле, надо ли им имя пользователя вводить или можно мышью ткнуть.
Если ПК индивидуальный, то там явно последний юзер отображается (если не настроено иначе политиками), и сразу предлагает ввести пароль.
Ilya K
>2. Какие технические ограничения вы знаете у кириллических паролей в Windows?
Проблемы могут быть (могли быть?) при интеграции Windows или AD с другими системами (не Microsoft).
Английские буквы соответствуют предсказуемым байтам в любой однобайтовой кодировке и в UTF-8, а вот русские — нет.
Если вы подключаете к AD, к примеру, клиент LDAP (для аутентификации в AD сервиса с **ix) или хотите аутентифицировать пользователя железного VPN через RADIUS (через NPS или как он там называется), то вполне можно огрести граблю, если конфигурация клиента сохранена в неверной кодировке или если клиент не умеет нужную кодировку.
Я вот даже не очень уверен что обычная samba (с linux или mac os) нормально зайдет на Windows по SMB с кириллическим паролем.
По этой причине многие подсознательно избегают в паролях символов, не укладывающихся в семибитный ascii, хотя может быть в 2020 это уже и не актуально.
subber
С системами от Microsoft тоже бывают проблемы, если в пароле кириллица. Пример: OWA — вэб-клиент для Exchange.
Super-Kozlov
2. Какие технические ограничения вы знаете у кириллических паролей в Windows?
Иногда нужно было вводить в настройки прокси какой-нибудь программы логин и пароль пользователя.
(у нас был майкростофтовский прокси)
С русскими паролями были проблемы.
Vadim Sterkin
Интересные кейсы, спасибо. В общем, я не и призывал в организации к кириллическим паролям, но хотел почитать про реальные грабли. Кейс с OWA удивил.
Andrew Lobzanoff
И да, забыл, конечно, сказать спасибо за полезный совет, который сэкономил мне много времени на копании в настройках.
Тимофей Николено
Здравствуйте! При нажатии WIN+Space переключается язык ввода с анимацией справа.
Возможно ли изменить сочетания этих клавиш ИЛИ отключить эту анимацию?
Не то, чтобы она мне не нравилась — для дела. Мешает.
Похожая анимация была ещё в бэте вин8, но почему-то была выпилена в релизе и добавлена лишь в одном из недавних крупных обновлениях вин10. Но тогда на бэте, кстати, эта анимация переключения языка всплывала и при любом из вариантов переключения языка ввода даже CTRL+SHIFT или ALT.
Просто сейчас надо её отключить.
http://i.piccy.info/i9/2bf25771078e28301f5b1e21bb1c1511/1587546875/71173/1374303/Snymok.png
Alexander Kozlov
В свое время воспользовался данной групповой политикой. Но она не решила мою проблему. Соответственно сотрудник утром включает компьютер, и на экране входа в систему будет английский язык. Но у него по умолчанию установлен русский язык и когда рабочий стол блокируется, то язык для ввода пароля тоже будет русский. А в нашей организации время блокировки рабочего стола всего 5 минут. Я не нашел способ сделать так, чтобы всегда на экране блокировки был по умолчанию английский язык. Может кто-то подскажет как это сделать?
Alex Smirnoff
Здравствуйте.
Это вопрос скорее к разработчикам MS…
Ну а как вариант — использовать сочетание левый Alt+Shift, но при этом первым нажимать Shift. Тогда окно переключения появляться не будет.
Vadim Sterkin
Потому что она и не призвана решать вашу проблему :) И технически вы не совсем верно описали, хотя проблема понятна.
Теперь я вспомнил, что забыл описать в статье. Поэтому добавил раздел Замечание о языке ввода на экране блокировки.
Alexander Kozlov
Понял. Спасибо. Подождем, может кто-нибудь предложит вариант установки языка по умолчанию на экране блокировки.
Илья Травин
Цифропароль для локальной учётной записи вполне достаточен, да и для учётной записи Майкрософт используется цифровой же пин-код
Vadim Sterkin
ПИН-код необязательно цифровой, смотрите ссылку в статье. Думаю, организации, использующие ПИН-код, форсируют политикой более сложный сценарий, чем цифры.
Тимофей Николено
Не подходит. Долго расписывать, но суть в том, что знакомый использует клавиатуру «игровую» в которой, как я понял, любое из сочетаний клавиш отдаёт команду винде именно как WIN+SPACE и что не выставляй в панели языковой — всё равно включается эта анимация.И она мешает другим полноэкранным приложениям сворачивая их.
Pavel M
А в 7ке это сочетание вроде и сворачивало или прозрачными делало все что над рабочим столом. Может драйвер клавиатуры или свисто-делки сторонние так себя ведут вдобавок к окну переключения.
Тимофей Николено
Я думаю, что с отключением этого окна будет разобраться быстрее чем с драйвером клавиатуры.
Vadim Sterkin
Надежды юношей питают © :)
Pavel M
Сам ознакомился впервые с расширенными языковыми параметрами на Windows 7 HB, когда на одном компьютере по требованиям установили средство защиты, и выдали свой парольную фразу русскую на qwerty. Фиг бы с этими переключениями (1 включение, 1-2 разблокировки), но вот эта кнопка переключения никак не хочет появляться на экране после включения (только после выхода/смены), что прям всех раздражало по несколько раз вбивать фразу. Так и не смог найти инструкций в интернете, в итоге в этих настройках сменил на английский.
Может быть есть у кого-то в копилке тайное знание?
Vadim Sterkin
Тайное знание о чем? О решении проблем с отображением чего-то на экране входа в Windows 7, куда прикручено еще непонятно что? Это в форум, плиз.
Тимофей Николено
Даже так??? Я вас услышал…
Lecron
Сохраняли бы (и проверяли) просто сканкоды клавиатуры и никаких проблем с выбором раскладки ;-) Думаю сразу на двух языках, пароль вряд ли кто-то вводит. Но что сложилось, то и сложилось.
Pavel M
Я все понимаю :D , желание вести толковую беседу по теме, извиняюсь за свое вмешательство по смежной теме. Но – да, именно знание как отобразить этот элемент интерфейса (со всеми остальными всё решаемо). Так как тема общая и аудитория здесь более собранная, шанс получить ответ гораздо выше, чем не увенчавшиеся успехом попытки на форумах.
Herz Mein
Чтобы долго не искать в панели управления, открываете cmd.exe и вставляете из буфера обмена (правая клавиша мыши)
Vadim Sterkin
Зачем долго искать нужную команду в гугле, копировать ее, открывать командную строку, вставлять, если можно быстро поискать ‘language bar’ в параметрах и сделать два щелчка мышью…
Herz Mein
Я ничего в гугле не искал, сначала запустил из панели управления, а потом просто просмотрел CommfndLine процесса rundll32:
Vadim Sterkin
Способ становился все короче и короче :)
Herz Mein
Смысл в том, что человек не мог найти эту настройку. Действительно ее поместили относительно далеко. Поэтому решил помочь, пусть и таким способом, чтобы просто ее запустить. Это же не на каждый день, один раз настроил и забыл.
Николай
Если я русский, работаю с русскими документами в Word’е и Excel’е, переписываюсь с русскими в соцсети, сижу на русскоязычных форумах, ищу информацию в интернете на русском языке и изредка что-то пишу в командной строке или, ну я не знаю, ищу в реестре, то почему у меня должен быть установлен по умолчанию английский язык? Типа, круто, а легких путей мы не ищем? :)
Vadim Sterkin
Значит, вы не настолько опытный пользователь, чтобы вам это было нужно. О чём и речь в цитате.
Стесняюсь спросить, раз у вас все такое русское, пароли все тоже на русском? Если нет, то почему?
Николай
А достаточно опытный не должен из командной строки вылезать что ли? Какая связь между опытностью и языком, не могу понять?
Пароли, по сложившейся традиции, у меня почти все на английском.
Vadim Sterkin
Это не только командная строка, но и поиск в Пуск, Win+R, адресная строка в браузере, создание и правка любых конфигурационных файлов, скрипты, диагностика проблем, гугление, чтение документации в оригинале (а не машинном переводе)
В общем, все то, что повышает уровень знаний Windows, расширяет набор навыков, ускоряет работу и решение прикладных задач. Поэтому для меня язык ввода по умолчанию служит одним из индикаторов опыта пользователя.
Я не делаю на его основе далеко идущих выводов, но русский язык ввода по умолчанию дает мне основания полагать, что человек нечасто выполняет как минимум перечисленные выше задачи.