Можно ли централизованно управлять параметрами языков?

в 13:31, , рубрики: microsoft, Windows 8.1, windows server 2012 r2, групповая политика, реестр, системное администрирование, метки: , , ,

Можно ли централизованно управлять параметрами языков?Буквально на прошлой неделе мне в чате социальной сети Facebook задали вопрос, связанный с автоматизаций некоторых языковых параметров при использовании функциональных возможностей групповой политики. Во время той переписки я сразу ответил, что можно реализовать все поставленные задачи, если воспользоваться возможностями предпочтений групповой политики и изменить конкретные параметры системного реестра. А интересовали человека следующие возможности: изменение метода ввода с установленным по умолчанию английским языком, а также изменение переключения раскладки на привычную для многих комбинацию клавиш Ctrl+Shift. Следовательно, далее в этой статье я расскажу, как можно решить подобную задачу. Вы также узнаете еще о некоторых маленьких хитростях, связанных с языковыми параметрами и групповой политикой.

Определение требуемых параметров

Как и в случае с большинством параметров операционной системы, для которых не существует отдельных параметров политики существующих административных шаблонов, чтобы найти требуемые параметры, можно попробовать выполнить мониторинг системного реестра при изменении искомых параметров в графическом интерфейсе. Как я уже писал, идеальным средством для мониторинга реестра считается утилита, написанная Марком Руссиновичем, – ProcessMonitor. В принципе, в данном случае с фильтрами этой утилиты все просто. Самое главное – выбрать процесс rundll32.exe и операцию RegSetValue, так как при помощи графических методов, диалог, благодаря которому вы можете изменить сочетание клавиш при переключении раскладки, вызывается из rundll32.exe, а соответствующая операция позволяет вам локализовать изменяющиеся параметры. После включения мониторинга и изменения сочетания клавиш вы увидите, что вам нужно будет работать с разделом реестра [HKEY_CURRENT_USERKeyboard LayoutToggle], а изменяемыми параметрами будут Hotkey, Language Hotkey и Layout Hotkey. Это обыкновенные строковые параметры, а их значения в нашем случае должны быть, соответственно, 2, 2 и 3. Получившийся результат мониторинга виден на следующей иллюстрации:

Можно ли централизованно управлять параметрами языков?
Рис. 1. Мониторинг изменения сочетания клавиш переключения раскладки

Первая партия параметров найдена – отлично! Теперь нам следует найти параметры, отвечающие за язык, установленный в операционной системе по умолчанию. Тут мы эту задачу можем сразу разбить на две подзадачи. Прежде всего, в операционных системах, начиная с Windows 8, есть два различных параметра, отвечающих за порядок языков. Это параметр, который называется «Предопределение метода ввода по умолчанию» (Override the default input method), а также параметр «Основной язык» (Primary language). С первым параметром все более-менее понятно и прозрачно. Здесь используется тот же перечень параметров, который был и в предшествующих операционных системах. В этом случае даже не обязательно выполнять какие-либо действия по мониторингу системы. Достаточно в редакторе реестра просто перейти из раздела Toggle в раздел Preload и посмотреть на перечень языков. Каждый язык имеет порядковый номер, согласно которому он должен использоваться. То есть параметр под номером 1 будет располагаться сверху в соответствующем раскрывающемся списке, а дальше уже пойдут языки, определенные в параметрах номерами 2, 3 и так далее. В качестве значений таких параметров указывается идентификационный код языковой группы. Так как нас интересуют только два языка (напомню, что код 409 – английский язык, а 419 – русский), следовательно, параметры должны выглядеть следующим образом:
[HKEY_CURRENT_USERKeyboard LayoutPreload]
«1»=«00000409»
«2»=«00000419»
Эти параметры, а также их отображение в графическом интерфейсе видно ниже:

Можно ли централизованно управлять параметрами языков?
Рис. 2. Определение параметров метода ввода по умолчанию

Сейчас попробуем копнуть еще глубже и посмотреть, как именно изменяются параметры при выборе основного языка на странице «Изменение языковых параметров» (Change your language preferences) панели управления. Тут в очередной раз придется воспользоваться утилитой от Руссиновича, так как сразу определить правильное расположение параметров в реестре практически невозможно. Добавив операцию фильтра RegEnumValue и изменив соответствующую настройку, сразу можно прийти к выводу, что интересующие нас параметры размещаются в разделе HKEY_CURRENT_USERControl PanelInternationalUser Profile. И изменять нужно будет только один мультистроковый параметр, который называется Languages. Данный параметр со своим соответствующим значением изображены ниже:

Можно ли централизованно управлять параметрами языков?
Рис. 3. Поиск параметра для определения основного языка

В принципе, все требуемые параметры уже найдены, но еще желательно определить значение последнего параметра, отвечающего за сохранение языка ввода для открывающихся приложений. Немного подробнее, о том, что это за параметр. Параметр «Позволить выбирать метод ввода для каждого приложения» (Let me set a different input method for each app window) позволяет вам сохранять выбранный язык ввода для каждого приложения. Возможность использования единого языка для всех приложений (то есть положение контрола, когда флажок снят) появилась в Windows 8, и, кстати, эта возможность сразу нашла тысячи недоброжелателей, которые пытаются избавить себя от таких страданий. Именно по этой причине я рекомендую устанавливать текущий флаг. К сожалению, на данном этапе локализовать требуемые параметры, т.е. как это можно сделать при помощи реестра мне все еще не удалось, поэтому, если у кого-то будет решение, напишите, пожалуйста, в комментариях к данной статье.
Можно переходить к следующему этапу – настройке элементов предпочтений групповой политики.

Настройка элементов предпочтений групповой политики

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

  1. Как обычно, для начала нужно открыть оснастку «Управление групповой политикой» (Group Policy Management) и создать новый объект GPO, скажем, «Language Settings», после чего связать его с требуемым подразделением и открыть редактор GPME;
  2. В отобразившемся редакторе следует перейти к узлу Конфигурация пользователяНастройкаКонфигурация WindowsРеестр (User ComfigurationPreferencesWindows SettingsFiles), где и будут создаваться коллекции и элементы предпочтения. Для создания первой коллекции из контекстного меню области сведений выбирается команда «Создать», а затем «Элемент семейства» (New > Collection Item), после чего просто определяется имя такой коллекции. Например, в данном примере создаются две коллекции: «Hot keys» и «Input Method»;
  3. После этого внутри коллекции «Hot keys» создается первый элемент предпочтения реестра. Так как такой параметр уже в реестре присутствует, в раскрывающемся списке «Действие» (Action) следует оставить установленное по умолчанию действие обновления. Все изменяемые сегодня параметры находятся в кусте HK_CURRENT_USER, поэтому из раскрывающегося списка «Куст» (Hive) следует выбрать соответствующий куст. Все параметры из этой коллекции будут размещаться в одном разделе, поэтому как для текущего, так и для всех последующих элементов предпочтений выбирается один и тот же раздел реестра — Keyboard LayoutToggle. В этом случае можно нажать на кнопку обзора и выбрать как раздел, так и изменяемый параметр реестра. Получается, после того как будет выбран первый параметр, у вас автоматически будут заполнены поля «Имя параметра», «Тип параметра» и «Значение» (Value name, Value type, Value data). Остается только, в случае необходимости, изменить значение параметра Hotkey на 2, как показано на следующей иллюстрации, а затем сохранить все внесенные изменения:

    Можно ли централизованно управлять параметрами языков?
    Рис. 4. Создание первого элемента предпочтения

  4. Средствами копирования и вставки создаются 2 следующих параметра: Language Hotkey и Layout Hotkey со значениями 2 и 3;
  5. Перейдя в коллекцию «Input Method», следует создать 2 элемента предпочтения реестра для раздела Keyboard LayoutPreload. Как было выяснено ранее, это обыкновенные строковые параметры «1» и «2» со значениями 00000409 и 00000419;
  6. Последний элемент предпочтения будет создаваться в корневом узле реестра. Это будет раздел Control PanelInternationalUser Profile. Тип параметра здесь должен быть указан как REG_MULTI_SZ. Значение же параметра Languages должно быть следующим, причем без пробелов и пустых строк:
    en-US
    ru
    Диалоговое окно текущего параметра политики ниже:
    Можно ли централизованно управлять параметрами языков?
    Рис. 5. Создание элемента предпочтения реестра с типом параметра REG_MULTI_SZ

  7. После этого, чтобы данные параметры применялись только на операционных системах Windows 8.1 (по крайней мере, в случае с последним параметром нацеливание на уровень элемента крайне желательно), вы можете либо для последнего элемента, либо для всех элементов, в редакторе нацеливания создать элемент операционной системы и указать, что такие параметры должны применяться только в том случае, если на клиенте установлена система Windows 8.1;
  8. В конечном счете, после создания последнего, шестого, параметра политики, ваш редактор управления групповыми политики должен выглядеть следующим образом:

    Можно ли централизованно управлять параметрами языков?
    Рис. 6. Редактор управления групповыми политиками после завершения создания всех элементов

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

Автор: hb860

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js