다음을 통해 공유


Windows 11 Enterprise 이미지에 언어 추가

전 세계의 조직 내 사용자가 Azure Virtual Desktop 배포를 사용할 수 있도록 하는 것이 중요합니다. 따라서 VM(가상 머신)에서 사용하는 Windows 11 Enterprise 이미지를 다른 언어 팩으로 사용자 지정할 수 있습니다. Windows 11부터 관리자가 아닌 사용자 계정은 이제 표시 언어와 해당 언어 기능을 모두 추가할 수 있습니다. 이 기능은 개인 호스트 풀의 사용자에 대한 언어 팩을 미리 설치할 필요가 없다는 것을 의미합니다. 풀된 호스트 풀의 경우 사용자 지정 이미지에 추가하려는 언어를 추가하는 것이 좋습니다. 이 문서의 지침은 단일 세션 및 다중 세션 버전의 Windows 11 Enterprise 모두에 사용할 수 있습니다.

조직에 여러 언어의 사용자가 포함된 경우 두 가지 옵션이 있습니다.

  • 언어별로 사용자 지정된 이미지를 사용하여 하나의 전용 호스트 풀을 만듭니다.
  • 동일한 호스트 풀에 서로 다른 언어를 가진 여러 사용자가 있습니다.

두 번째 옵션은 리소스 및 비용 측면에서 더 효율적이지만 몇 가지 추가 단계가 필요합니다. 다행히 이 문서는 모든 언어 및 지역화 요구 사항을 수용할 수 있는 이미지를 빌드하는 방법을 안내하는 데 도움이 됩니다.

필수 조건

Windows 11 Enterprise VM에 언어를 추가하려면 다음 사항을 준비해야 합니다.

참고 항목

사용자 지정 이미지를 만들기 위해 사용하려는 Azure VM에서 파일 공유(리포지토리)에 액세스할 수 있어야 합니다.

언어 패키지 및 주문형 기능에 대한 콘텐츠 리포지토리 만들기

VM에 언어 및 기능을 추가하는 데 사용할 콘텐츠 리포지토리를 만듭니다.

  1. Azure에서 언어를 추가하려는 VM을 엽니다.

  2. VM에서 위의 필수 구성 요소 섹션에서 다운로드한 ISO 파일을 열고 탑재합니다.

  3. 파일 공유에 폴더를 만듭니다.

  4. ISO의 LanguagesAndOptionalFeatures 폴더에서 만든 폴더로 모든 콘텐츠를 복사합니다.

    참고 항목

    제한된 스토리지로 작업하는 경우 탑재된 “언어 및 옵션 기능” ISO를 리포지토리로 사용할 수 있습니다. 리포지토리를 만드는 방법을 알아보려면 사용자 지정 FOD 및 언어 팩 리포지토리 빌드를 참조하세요.

    Important

    일부 언어에서는 서로 다른 명명 규칙을 따르는 위성 패키지에 포함된 추가 글꼴이 필요합니다. 일본어의 경우, 글꼴 파일 이름에 “Jpan"이 포함됩니다.

    파일 이름에 “Jpan” 언어 태그가 있는 일본어 언어 팩 예제

  5. 사용자 지정 이미지를 빌드하기 위해 사용할 VM에서 읽기 액세스 권한을 갖도록 언어 콘텐츠 리포지토리 공유에 권한을 설정합니다.

수동으로 사용자 지정 Windows 11 Enterprise 이미지 만들기

다음 단계에 따라 사용자 지정 이미지를 만들 수 있습니다.

  1. Azure VM을 배포한 후 Azure Gallery로 이동하고 사용 중인 Windows 11 Enterprise의 현재 버전을 선택합니다.

  2. VM을 배포한 후 RDP를 로컬 관리자로 사용하여 연결합니다.

  3. 언어 패키지 및 주문형 기능에 대한 콘텐츠 리포지토리 만들기에서 만든 파일 공유 리포지토리에 연결하고 이를 문자 드라이브(예: E 드라이브)에 탑재합니다.

  4. 관리자 권한 PowerShell 세션에서 다음 PowerShell 스크립트를 실행하여 Windows 11 Enterprise 언어 팩 및 위성 패키지를 설치합니다.

    ########################################################
    ## 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. 마지막으로, 언어를 설치하는 동안 VM이 인터넷에 연결된 경우 정리 프로세스를 실행하여 불필요한 언어 환경 팩을 제거해야 합니다. 파일을 정리하려면 다음 명령을 실행합니다.

    ##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. 문제가 발생하면 Windows>System32>Sysprep>Panther의 C 드라이브에서 SetupErr.log 파일을 확인합니다. 그런 다음 Microsoft Store 앱과 함께 Sysprep 실패의 지침을 따라 설정 문제를 해결합니다.

  3. 설정에 성공하면 VM을 중지한 후 Azure에서 일반화된 VM의 관리되는 이미지 만들기의 지침에 따라 관리되는 이미지로 캡처합니다.

  4. 이제 사용자 지정된 이미지를 사용하여 Azure Virtual Desktop 호스트 풀을 배포할 수 있습니다. 호스트 풀 배포 방법을 알아보려면 자습서: Azure Portal을 사용하여 호스트 풀 만들기를 참조하세요.

참고 항목

사용자가 표시 언어를 변경하면 Azure Virtual Desktop 세션에서 로그아웃했다가 다시 로그인해야 합니다. 시작 메뉴에서 로그아웃해야 합니다.

다음 단계

Windows 10 다중 세션 이미지에 언어 팩 추가에서 Windows 10 다중 세션 VM용 언어 패키지를 설치하는 방법을 알아봅니다.

알려진 문제 목록은 Windows 10에서 언어 추가: 알려진 문제를 참조하세요.