Поделиться через


Добавление языковых пакетов в Windows 10 многосеансовый образ

Виртуальный рабочий стол Azure — это служба, которую пользователи могут развертывать в любое время и в любом месте. Вот почему важно, чтобы пользователи могли настроить язык, на котором отображается многосеансовое изображение Windows 10 Корпоративная.

Существует два способа удовлетворения языковых потребностей пользователей:

  • Создание выделенных пулов узлов с настраиваемым образом для каждого языка.
  • Укажите пользователей с разными требованиями к языку и локализации в одном пуле узлов, но настройте свои образы, чтобы они могли выбрать нужный язык.

Последний метод является гораздо более эффективным и экономичным. Тем не менее, вы сами решаете, какой метод лучше всего соответствует вашим потребностям. В этой статье показано, как настроить языки для изображений.

Предварительные условия

Чтобы настроить Windows 10 Корпоративная многосеансовые образы для добавления нескольких языков, вам потребуется следующее:

Примечание.

Общий файловый ресурс (репозиторий) должен быть доступен на виртуальной машине Azure, используемой для создания пользовательского образа.

Создание репозитория содержимого для языковых пакетов и функций по запросу

Чтобы создать репозиторий содержимого для языковых пакетов и FOD, а также репозиторий для пакетов входящих приложений:

  1. На виртуальной машине Azure скачайте Windows 10 многоязыковых образов ISO, FOD и входящих приложений для Windows 10 Корпоративная многосеансовых образов версии 1903/1909 и 2004 по ссылкам в разделе Предварительные требования.

  2. Откройте и подключите ISO-файлы на виртуальной машине.

  3. Перейдите к ISO-файлу языкового пакета и скопируйте содержимое из папок LocalExperiencePacks и x64\langpacks , а затем вставьте содержимое в общую папку.

  4. Перейдите к ISO-файлу FOD, скопируйте все его содержимое, а затем вставьте его в общую папку.

  5. Перейдите в папку amd64fre в ISO-файле "Входящие приложения" и скопируйте содержимое в репозитории для подготовленных вами приложений для папки "Входящие".

    Примечание.

    Если вы работаете с ограниченным хранилищем, копируйте только файлы для языков, которые нужны пользователям. Вы можете отличить файлы, просмотрев коды языков в их именах файлов. Например, французский файл содержит код fr-FR в имени. Полный список кодов языков для всех доступных языков см. в разделе Доступные языковые пакеты для Windows.

    Важно!

    Для некоторых языков требуются дополнительные шрифты, включенные в вспомогательные пакеты, которые соответствуют различным соглашениям об именовании. Например, имена файлов шрифтов на японском языке включают "Jpan".

    Пример японских языковых пакетов с тегом языка Jpan в именах файлов.

  6. Задайте разрешения на общую папку репозитория содержимого языка, чтобы у вас был доступ на чтение с виртуальной машины, которую вы будете использовать для создания пользовательского образа.

Создание пользовательского Windows 10 Корпоративная многосеансового образа вручную

Чтобы создать пользовательское Windows 10 Корпоративная многосеансовый образ вручную, выполните приведенные ниже действия.

  1. Разверните виртуальную машину Azure, а затем перейдите в коллекцию Azure и выберите текущую версию Windows 10 Корпоративная многосеансовой версии, которую вы используете.

  2. После развертывания виртуальной машины подключитесь к ней с помощью RDP в качестве локального администратора.

  3. Убедитесь, что на виртуальной машине есть все последние Обновления Windows. Скачайте обновления и при необходимости перезапустите виртуальную машину.

    Важно!

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

  4. Подключитесь к репозиторию общей папки языковых пакетов, FOD и приложений для папки "Входящие" и подключите его к диску с буквами (например, на диске E).

Автоматическое создание пользовательского Windows 10 Корпоративная многосеансового образа

Если вы предпочитаете устанавливать языки с помощью автоматизированного процесса, можно настроить скрипт в PowerShell. Приведенный ниже пример скрипта можно использовать для установки языковых пакетов для испанского (Испания), французского (Франция) и китайского языков (PRC) и вспомогательных пакетов для Windows 10 Корпоративная многосеансовой версии 2004. Скрипт интегрирует в образ пакет языкового интерфейса и все необходимые вспомогательные пакеты. Однако вы также можете изменить этот скрипт, чтобы установить другие языки. Просто запустите скрипт из сеанса PowerShell с повышенными привилегиями, в противном случае он не будет работать.

########################################################
## Add Languages to running Windows Image for Capture ##
########################################################

##Disable Language Pack Cleanup##
Disable-ScheduledTask -TaskPath "\Microsoft\Windows\AppxDeploymentClient\" -TaskName "Pre-staged app cleanup"

##Set Language Pack Content Stores##
[string]$LIPContent = "E:"

##Spanish##
Add-AppProvisionedPackage -Online -PackagePath $LIPContent\es-es\LanguageExperiencePack.es-es.Neutral.appx -LicensePath $LIPContent\es-es\License.xml
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-Client-Language-Pack_x64_es-es.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-Basic-es-es-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-Handwriting-es-es-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-OCR-es-es-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-Speech-es-es-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-TextToSpeech-es-es-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-NetFx3-OnDemand-Package~31bf3856ad364e35~amd64~es-es~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-InternetExplorer-Optional-Package~31bf3856ad364e35~amd64~es-es~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-MSPaint-FoD-Package~31bf3856ad364e35~amd64~es-es~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-Notepad-FoD-Package~31bf3856ad364e35~amd64~es-es~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-PowerShell-ISE-FOD-Package~31bf3856ad364e35~amd64~es-es~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-Printing-WFS-FoD-Package~31bf3856ad364e35~amd64~es-es~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-StepsRecorder-Package~31bf3856ad364e35~amd64~es-es~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-WordPad-FoD-Package~31bf3856ad364e35~amd64~es-es~.cab
$LanguageList = Get-WinUserLanguageList
$LanguageList.Add("es-es")
Set-WinUserLanguageList $LanguageList -force

##French##
Add-AppProvisionedPackage -Online -PackagePath $LIPContent\fr-fr\LanguageExperiencePack.fr-fr.Neutral.appx -LicensePath $LIPContent\fr-fr\License.xml
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-Client-Language-Pack_x64_fr-fr.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-Basic-fr-fr-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-Handwriting-fr-fr-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-OCR-fr-fr-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-Speech-fr-fr-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-TextToSpeech-fr-fr-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-NetFx3-OnDemand-Package~31bf3856ad364e35~amd64~fr-fr~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-InternetExplorer-Optional-Package~31bf3856ad364e35~amd64~fr-FR~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-MSPaint-FoD-Package~31bf3856ad364e35~amd64~fr-FR~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-Notepad-FoD-Package~31bf3856ad364e35~amd64~fr-FR~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-PowerShell-ISE-FOD-Package~31bf3856ad364e35~amd64~fr-FR~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-Printing-WFS-FoD-Package~31bf3856ad364e35~amd64~fr-FR~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-StepsRecorder-Package~31bf3856ad364e35~amd64~fr-FR~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-WordPad-FoD-Package~31bf3856ad364e35~amd64~fr-FR~.cab
$LanguageList = Get-WinUserLanguageList
$LanguageList.Add("fr-fr")
Set-WinUserLanguageList $LanguageList -force

##Chinese(PRC)##
Add-AppProvisionedPackage -Online -PackagePath $LIPContent\zh-cn\LanguageExperiencePack.zh-cn.Neutral.appx -LicensePath $LIPContent\zh-cn\License.xml
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-Client-Language-Pack_x64_zh-cn.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-Basic-zh-cn-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-Fonts-Hans-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-Handwriting-zh-cn-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-OCR-zh-cn-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-Speech-zh-cn-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-TextToSpeech-zh-cn-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-NetFx3-OnDemand-Package~31bf3856ad364e35~amd64~zh-cn~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-InternetExplorer-Optional-Package~31bf3856ad364e35~amd64~zh-cn~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-MSPaint-FoD-Package~31bf3856ad364e35~amd64~zh-cn~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-Notepad-FoD-Package~31bf3856ad364e35~amd64~zh-cn~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-PowerShell-ISE-FOD-Package~31bf3856ad364e35~amd64~zh-cn~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-Printing-WFS-FoD-Package~31bf3856ad364e35~amd64~zh-cn~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-StepsRecorder-Package~31bf3856ad364e35~amd64~zh-cn~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-WordPad-FoD-Package~31bf3856ad364e35~amd64~zh-cn~.cab
$LanguageList = Get-WinUserLanguageList
$LanguageList.Add("zh-cn")
Set-WinUserLanguageList $LanguageList -force

Сценарий может занять некоторое время в зависимости от количества языков, которые необходимо установить.

После завершения выполнения скрипта проверка, чтобы убедиться, что языковые пакеты установлены правильно, перейдя в раздел Начальная>>настройкавремени & язык>. Если языковые файлы есть, все готово.

После добавления дополнительных языков в образ Windows приложения папки "Входящие" также необходимо обновить для поддержки добавленных языков. Это можно сделать, обновив предварительно установленные приложения содержимым из ISO-файла приложений папки "Входящие". Чтобы выполнить это обновление в среде, где у виртуальной машины нет доступа к Интернету, можно использовать следующий шаблон сценария PowerShell, чтобы автоматизировать процесс и обновить только установленные версии приложений для папки "Входящие".

#########################################
## Update Inbox Apps for Multi Language##
#########################################
##Set Inbox App Package Content Stores##
[string] $AppsContent = "F:\"

##Update installed Inbox Store Apps##
foreach ($App in (Get-AppxProvisionedPackage -Online)) {
	$AppPath = $AppsContent + $App.DisplayName + '_' + $App.PublisherId
	Write-Host "Handling $AppPath"
	$licFile = Get-Item $AppPath*.xml
	if ($licFile.Count) {
		$lic = $true
		$licFilePath = $licFile.FullName
	} else {
		$lic = $false
	}
	$appxFile = Get-Item $AppPath*.appx*
	if ($appxFile.Count) {
		$appxFilePath = $appxFile.FullName
		if ($lic) {
			Add-AppxProvisionedPackage -Online -PackagePath $appxFilePath -LicensePath $licFilePath 
		} else {
			Add-AppxProvisionedPackage -Online -PackagePath $appxFilePath -skiplicense
		}
	}
}

Важно!

Приложения для папки "Входящие", включенные в ISO, не являются последними версиями предустановленных приложений Windows. Чтобы получить последнюю версию всех приложений, необходимо обновить приложения с помощью приложения Магазина Windows и выполнить поиск обновлений вручную после установки дополнительных языков.

По завершении убедитесь, что общий ресурс отключен.

Завершение настройки образа

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

Завершив настройку образа, необходимо запустить средство подготовки системы (sysprep).

Чтобы запустить sysprep, выполните приведенные далее действия.

  1. Откройте командную строку с повышенными привилегиями и выполните следующую команду, чтобы обобщить образ:

    C:\Windows\System32\Sysprep\sysprep.exe /oobe /generalize /shutdown
    
  2. Остановите виртуальную машину, а затем запишите ее в управляемый образ, следуя инструкциям в разделе Создание управляемого образа обобщенной виртуальной машины в Azure.

  3. Теперь вы можете использовать настроенный образ для развертывания пула узлов Виртуального рабочего стола Azure. Сведения о развертывании пула узлов см. в статье Руководство. Создание пула узлов с помощью портал Azure.

Включение языков в приложении параметров Windows

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

Чтобы пользователи могли выбрать установленные языки, войдите от имени пользователя, а затем выполните следующий командлет PowerShell, чтобы добавить установленные языковые пакеты в меню Языки. Этот скрипт также можно настроить как автоматическую задачу или скрипт входа, который активируется при входе пользователя в сеанс.

$LanguageList = Get-WinUserLanguageList
$LanguageList.Add("es-es")
$LanguageList.Add("fr-fr")
$LanguageList.Add("zh-cn")
Set-WinUserLanguageList $LanguageList -force

После изменения языковых параметров пользователь должен выйти из сеанса Виртуального рабочего стола Azure и снова войти в систему, чтобы изменения вступили в силу.

Дальнейшие действия

Если вам интересно об известных проблемах с языковыми пакетами, см. статью Добавление языковых пакетов в Windows 10 версии 1803 и более поздних: известные проблемы.

Если у вас есть другие вопросы о Windows 10 Корпоративная многосеансовом режиме, проверка наши вопросы и ответы.