SCCM; OSD; Windows 10; Порядок языков, язык в LogonScreen и локализованные ярлыки приложений в "Пуск"

Время от времени на профильных ресурсах обсуждается вопрос – “Как задать языковые параметры ОС при установке?”. Классический, правильный ответ — с помощью Unattend.xml или в MDT — с помощью CustomSettings.ini (что на самом деле тоже ведёт к формированию Unattend.xml). Но не все параметры удаётся задать через него, особенно специфические. Особенно часто этот вопрос начал возникать с появлением Windows 10, так как заданный порядок языков влияет на отображение ярлыков приложений в меню “Пуск”. Вокруг этого сразу возникает множество советов по исправлению параметров реестра, не обращая внимания на способ предложенный MS уже более 10-ти лет назад – “Command Line Configuration of International Settings”.

Начиная с  Windows Vista, появился инструмент управления настройками International Settings. Хороший, понятный и простой инструмент для управления языковыми настройками.

Но Microsoft был бы не Microsoft если бы не “улучшал” механизм управления. «In Windows 10, the intl.cpl command line tools do not support the new settings available in the Region and Language section of Control Panel. For Windows 10, we recommend using the International Windows PowerShell cmdlet settings to automate customizing international settings.«

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

Задача

Если перефразировать задачу на технический язык, то необходимо:

  1. Установить порядок языков в следующем порядке:

    — Русский
    — English (United States)

  2. Выставить параметр: “Переопределение метода ввода по умолчанию” в “Английский (США) – США”.
  3. Скопировать данные настройки в профиль по умолчанию (чтобы новые пользователи получали эти языковые настройки)”.

Решение

Решается это элементарно, всё что надо, это создать xml-файл (назовём его “Win10-LO-ru-ru-en-us.xml” ), с необходимыми параметрами и применить его.

В Task Sequence настройки применяются в “Full OS”, после шага OOBE (на котором, в том числе, применяются языковые настройки).

Пример содержания xml-файла

Файл конфигурации который я использую в Task Sequence: “Win10-LO-ru-ru-en-us.xml”. В первый нескольких строчках подсказка как применять и где смотреть лог применения.

<!-- 
control intl.cpl,, /f:"c:\path\to\Windows10-LanguageOptions.xml"
Or in TS:
rundll32.exe shell32,Control_RunDLL intl.cpl,,/F:"c:\path\to\Windows10-LanguageOptions.xml"
Log in event viewer: Applications and Services Logs \ Microsoft \ Windows \ International
-->
<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">

	<!-- user list --> 
	<gs:UserList>
		<gs:User UserID="Current" CopySettingsToDefaultUserAcct="true" CopySettingsToSystemAcct="false"/> 
	</gs:UserList>

	<!-- GeoID: 203 - Russia
	<gs:LocationPreferences> 
		<gs:GeoID Value="203"/>
	</gs:LocationPreferences>-->

	<gs:MUILanguagePreferences>
		<gs:MUILanguage Value="ru-RU"/>
		<gs:MUIFallback Value="en-US"/>
	</gs:MUILanguagePreferences>

	<!-- SystemLocale: Specifies the language for non-Unicode programs. -->
	<gs:SystemLocale Name="ru-RU"/>

	<!-- Input preferences. Order is important -->
	<gs:InputPreferences>
		<gs:InputLanguageID Action="remove" ID="0409:00000409"/>
		<gs:InputLanguageID Action="remove" ID="0419:00000419"/>
		<!--ru-RU-->
		<gs:InputLanguageID Action="add" ID="0419:00000419"/>
		<!--en-US-->
		<gs:InputLanguageID Action="add" ID="0409:00000409" Default="true"/>
	</gs:InputPreferences>
	<!-- UserLocale: Specifies the per-user settings used for formatting dates, times, currency, and numbers-->
	<gs:UserLocale>
		<gs:Locale Name="ru-RU" SetAsCurrent="true" ResetAllSettings="true">
		</gs:Locale>
	</gs:UserLocale>

</gs:GlobalizationServices>

Некоторые пояснения и замечания

  • CopySettingsToDefaultUserAcct — скопировать настройки в профиль по умолчанию.
  • В секции “<gs:InputPreferences>” – языки сначала удаляются а потом добавляются в нужном порядке — ru-RU / en-US.
  • В строке <gs:InputLanguageID Action=”add” ID=”0409:00000409” Default=”true”/>, параметр “Default” (регистрозависимый) – определяет “Переопределение метода ввода по умолчанию” (“Override for default input method”) для указанного языка.

В целом, если внимательно присмотреться ко всем параметрам – они точно повторяют действия и настройки, которые вы можете задать руками. В документации всё настолько подробно описано что и добавить нечего.

Как это выглядит в Task Sequence

Сформированный файл кладётся в пакет и применяется командой:

rundll32.exe shell32,Control_RunDLL intl.cpl,,/F:"Win10-LO-ru-ru-en-us.xml"

Я традиционно складываю подобные команды в конце TS:

image

Результат

В итоге получаем следующие настройки в установленной ОС и для каждого нового, залогиненного пользователя:

image

В Windows 1803 эту настройку перенесли в Modern Settings: “Время и язык” \ “Регион и язык” \ “Дополнительные параметры клавиатуры” (“Time & Language” \ ”Region & language” \ “Advanced keyboard settings”)

image

Вот и всё.

Ну а если всё-таки хочется управлять языками через реестр, делайте это хотя бы централизовано (только сконвертируйте в admx): https://social.technet.microsoft.com/wiki/contents/articles/6281.how-to-set-the-keyboard-layout-through-group-policy-gpo.aspx

Реклама
Запись опубликована в рубрике OSD, SCCM, Tricks. Добавьте в закладки постоянную ссылку.

2 комментария на «SCCM; OSD; Windows 10; Порядок языков, язык в LogonScreen и локализованные ярлыки приложений в "Пуск"»

  1. Илья:

    Сергей. спасибо за материал — очень пригодился, т. к. проблема актуальна у нас на предприятии.
    Но не получилось, чтобы данные настройки применялись в Последовательности задач на этапе развертывания операционной системы. Если создать простую Последовательность задач из одного пункта и сделать развертывание на группу компьютеров, то настройки применятся если пользователь выполнил вход.
    Подскажите, может какой нюанс есть?

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s