Добавление языков в образ Windows 11 Корпоративная

Важно, чтобы пользователи в вашей организации по всему миру могли работать с развертыванием Виртуального рабочего стола Azure. Вот почему вы можете настроить образ Windows 11 Корпоративная, используемый для виртуальных машин, с разными языковыми пакетами. Начиная с Windows 11 учетные записи пользователей без прав администратора теперь могут добавлять как язык интерфейса, так и соответствующие языковые функции. Это означает, что вам не потребуется предварительно устанавливать языковые пакеты для пользователей в личном пуле узлов. Для пулов узлов в составе пула по-прежнему рекомендуется добавить языки, которые планируется добавить в пользовательский образ. Инструкции в этой статье можно использовать как для односеансовых, так и для многосеансовых версий Windows 11 Корпоративная.

Если пользователи в организации говорят на разных языках, есть два варианта:

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

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

Необходимые компоненты

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

Примечание

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

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

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

  1. Откройте виртуальную машину, на которую нужно добавить языки, в Azure.

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

  3. Создайте папку в общей папке.

  4. Скопируйте все содержимое из папки LanguagesAndOptionalFeatures в ISO-образе в созданную папку.

    Примечание

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

    Важно!

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

    Пример японских языковых пакетов с тегом языка

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

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

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

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

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

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

  4. Выполните следующий скрипт PowerShell из сеанса PowerShell с повышенными привилегиями, чтобы установить языковые и вспомогательные пакеты в Windows 11 Корпоративная:

    ########################################################
    ## Add Languages to running Windows Image for Capture##
    ########################################################
    ##Disable Language Pack Cleanup##
    Disable-ScheduledTask -TaskPath "\Microsoft\Windows\AppxDeploymentClient\" -TaskName "Pre-staged app cleanup"
    Disable-ScheduledTask -TaskPath "\Microsoft\Windows\MUI\" -TaskName "LPRemove"
    Disable-ScheduledTask -TaskPath "\Microsoft\Windows\LanguageComponentsInstaller" -TaskName "Uninstallation"
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Control Panel\International" /v "BlockCleanupOfUnusedPreinstalledLangPacks" /t REG_DWORD /d 1 /f
    
    ##Set Language Pack Content Stores##
    $LIPContent = "E:"
    
    ##Set Path of CSV File##
    $CSVFile = "Windows-10-1809-FOD-to-LP-Mapping-Table.csv"
    $filePath = (Get-Location).Path + "\$CSVFile"
    
    ##Import Necesarry CSV File##
    $FODList = Import-Csv -Path $filePath -Delimiter ";"
    
    ##Set Language (Target)##
    $targetLanguage = "es-es"
    
    $sourceLanguage = (($FODList | Where-Object {$_.'Target Lang' -eq $targetLanguage}) | Where-Object {$_.'Source Lang' -ne $targetLanguage} | Select-Object -Property 'Source Lang' -Unique).'Source Lang'
    if(!($sourceLanguage)){
        $sourceLanguage = $targetLanguage
    }
    
    $langGroup = (($FODList | Where-Object {$_.'Target Lang' -eq $targetLanguage}) | Where-Object {$_.'Lang Group:' -ne ""} | Select-Object -Property 'Lang Group:' -Unique).'Lang Group:'
    
    ##List of additional features to be installed##
    $additionalFODList = @(
        "$LIPContent\Microsoft-Windows-NetFx3-OnDemand-Package~31bf3856ad364e35~amd64~~.cab", 
        "$LIPContent\Microsoft-Windows-MSPaint-FoD-Package~31bf3856ad364e35~amd64~$sourceLanguage~.cab",
        "$LIPContent\Microsoft-Windows-SnippingTool-FoD-Package~31bf3856ad364e35~amd64~$sourceLanguage~.cab",
        "$LIPContent\Microsoft-Windows-Lip-Language_x64_$sourceLanguage.cab" ##only if applicable##
    )
    
    $additionalCapabilityList = @(
     "Language.Basic~~~$sourceLanguage~0.0.1.0",
     "Language.Handwriting~~~$sourceLanguage~0.0.1.0",
     "Language.OCR~~~$sourceLanguage~0.0.1.0",
     "Language.Speech~~~$sourceLanguage~0.0.1.0",
     "Language.TextToSpeech~~~$sourceLanguage~0.0.1.0"
     )
    
     ##Install all FODs or fonts from the CSV file###
     Dism /Online /Add-Package /PackagePath:$LIPContent\Microsoft-Windows-Client-Language-Pack_x64_$sourceLanguage.cab
     Dism /Online /Add-Package /PackagePath:$LIPContent\Microsoft-Windows-Lip-Language-Pack_x64_$sourceLanguage.cab
     foreach($capability in $additionalCapabilityList){
        Dism /Online /Add-Capability /CapabilityName:$capability /Source:$LIPContent
     }
    
     foreach($feature in $additionalFODList){
     Dism /Online /Add-Package /PackagePath:$feature
     }
    
     if($langGroup){
     Dism /Online /Add-Capability /CapabilityName:Language.Fonts.$langGroup~~~und-$langGroup~0.0.1.0 
     }
    
     ##Add installed language to language list##
     $LanguageList = Get-WinUserLanguageList
     $LanguageList.Add("$targetlanguage")
     Set-WinUserLanguageList $LanguageList -force
    

    Примечание

    В этом примере скрипта используется код испанского языка (es-es). Чтобы автоматически установить соответствующие файлы для другого языка, измените значение параметра $targetLanguage на код этого языка. Список кодов языков см. в разделе Доступные языковые пакеты для Windows.

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

  5. Для автоматического выбора соответствующих файлов установки скачайте и сохраните таблицу языков и компонентов, доступных для Windows 10 1809 по запросу, в виде CSV-файла, а затем сохраните этот файл в папке, где находится скрипт PowerShell.

  6. После завершения работы скрипта убедитесь, что языковые пакеты установлены правильно, перейдя: Пуск>Параметры>Время и язык>Язык. Если языковые файлы находятся там, это значит все они настроены.

  7. Наконец, если виртуальная машина подключена к Интернету при установке языков, необходимо запустить процесс очистки, чтобы удалить ненужные языковые пакеты. Чтобы удалить файлы, выполните следующие команды:

    ##Cleanup to prepare sysprep##
    Remove-AppxPackage -Package Microsoft.LanguageExperiencePackes-ES_22000.8.13.0_neutral__8wekyb3d8bbwe
    
    Remove-AppxPackage -Package Microsoft.OneDriveSync_22000.8.13.0_neutral__8wekyb3d8bbwe
    

    Чтобы удалить другие языковые пакеты, замените es-ES на код другого языка.

  8. После завершения очистки отключите общую папку.

Завершение настройки пользовательского образа

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

После завершения настройки пользовательского образа необходимо запустить средство подготовки системы (Sysprep).

Чтобы запустить Sysprep:

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

    C:\Windows\System32\Sysprep\sysprep.exe /oobe /generalize /shutdown
    
  2. Если возникнут проблемы, проверьте файл SetupErr.log на диске C в папке Windows>System32>Sysprep>Panther. После этого следуйте инструкциям в разделе Сбой Sysprep для приложений из Microsoft Store, чтобы устранить неполадки.

  3. Если установка завершилась успешно, остановите виртуальную машину, а затем запишите ее в управляемый образ, следуя инструкциям в статье Создание управляемого образа распространяемой виртуальной машины в Azure.

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

Примечание

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

Следующие шаги

Узнайте, как установить языковые пакеты для многосеансовых виртуальных машин Windows 10, в статье Добавление языковых пакетов в многосеансовый образ Windows 10.

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