Adicionar pacotes de idiomas a uma imagem de várias sessões do Windows 10

A Área de Trabalho Virtual do Azure é um serviço que os usuários podem implantar a qualquer momento, em qualquer lugar. Por isso, é importante que os usuários possam personalizar em qual idioma suas imagens de várias sessões do Windows 10 Enterprise são exibidas.

Há duas maneiras de acomodar as necessidades de idioma dos seus usuários:

  • Crie pools de host dedicados com uma imagem personalizada para cada idioma.
  • Tenha usuários com requisitos diferentes de idioma e localização no mesmo pool de host, mas personalize as imagens deles para garantir que eles possam selecionar o idioma de que precisam.

O último método é muito mais eficiente e econômico. No entanto, cabe a você decidir qual método melhor atende às suas necessidades. Este artigo mostrará como personalizar idiomas para suas imagens.

Pré-requisitos

Você precisa dos seguintes itens para personalizar as imagens de várias sessões do Windows 10 Enterprise e adicionar vários idiomas:

Observação

O compartilhamento de arquivo (repositório) precisa ser acessível na VM do Azure que você planeja usar para criar a imagem personalizada.

Criar um repositório de conteúdo para pacotes de idiomas e recursos sob demanda

Para criar o repositório de conteúdo para pacotes de idiomas e FODs e um repositório para os pacotes de aplicativos da caixa de entrada:

  1. Em uma VM do Azure, baixe os aplicativos ISO de vários idiomas, FODs e de caixa de entrada do Windows 10 para as imagens do Windows 10 Enterprise multissessão, versão 1903/1909 e 2004 dos links em Pré-requisitos.

  2. Abra e monte os arquivos ISO na VM.

  3. Vá para o pacote de idiomas ISO e copie o conteúdo das pastas LocalExperiencePacks e x64\langpacks depois, cole o conteúdo no compartilhamento de arquivo.

  4. Vá para o arquivo ISO FOD, copie todo o conteúdo e cole-o no compartilhamento de arquivo.

  5. Vá para a pasta amd64fre no ISO dos aplicativos da caixa de entrada e copie o conteúdo no repositório para os aplicativos da caixa de entrada que você preparou.

    Observação

    Se você estiver trabalhando com armazenamento limitado, copie apenas os arquivos dos idiomas que você sabe que os usuários precisam. Você pode diferenciar os arquivos examinando os códigos de idioma nos nomes do arquivo. Por exemplo, o arquivo francês tem o código "fr-FR" no nome. Para obter uma lista completa de códigos de idioma para todos os idiomas disponíveis, confira Pacotes de idiomas disponíveis para Windows.

    Importante

    Alguns idiomas exigem fontes adicionais incluídas em pacotes satélites que seguem diferentes convenções de nomenclatura. Por exemplo, nomes de arquivo de fonte em japonês incluem "Jpan".

    Um exemplo dos pacotes do idioma japonês com a marca de idioma

  6. Defina as permissões no compartilhamento do repositório de conteúdo do idioma para ter acesso de leitura da VM que você usará para criar a imagem personalizada.

Criar uma imagem personalizada de várias sessões do Windows 10 Enterprise manualmente

Para criar uma imagem personalizada de várias sessões do Windows 10 Enterprise manualmente:

  1. Implante uma VM do Azure, vá para a Galeria do Azure e selecione a versão atual do Windows 10 Enterprise de várias sessões que você está usando.

  2. Depois de implantar a VM, conecte-se a ela usando o RDP como administrador local.

  3. Verifique se sua VM tem todas as atualizações mais recentes do Windows. Baixe as atualizações e reinicie a VM, se necessário.

    Importante

    Depois de instalar um pacote de idiomas, você precisará reinstalar a atualização cumulativa mais recente instalada em sua imagem. Se você não reinstalar a atualização cumulativa mais recente, poderá encontrar erros. Se a atualização cumulativa mais recente já estiver instalada, o Windows Update não a oferecerá novamente e você precisará reinstalá-la manualmente. Para obter mais informações, confira Visão geral de idiomas.

  4. Conecte-se ao repositório de compartilhamento de arquivo do pacote de idiomas, do FOD e dos aplicativos da caixa de entrada e monte-os em uma unidade de letra (por exemplo, unidade E).

Criar uma imagem personalizada de várias sessões do Windows 10 Enterprise automaticamente

Se você preferir instalar idiomas por meio de um processo automatizado, poderá configurar um script no PowerShell. Você pode usar o exemplo de script a seguir para instalar os pacotes de idiomas espanhol (Espanha), francês (França) e chinês (RPC) e os pacotes satélites para o Windows 10 Enterprise de várias sessões, versão 2004. O script integra o pacote da interface de idiomas e todos os pacotes satélites necessários na imagem. No entanto, você também pode modificar esse script para instalar outros idiomas. Basta executar o script de uma sessão do PowerShell com privilégios elevados caso contrário, ele não funcionará.

########################################################
## 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

O script pode demorar um pouco dependendo do número de idiomas que você precisa instalar.

Após a conclusão da execução do script, verifique se os pacotes de idiomas foram instalados corretamente acessando Iniciar>Configurações>Hora e Idioma>Idioma. Se os arquivos de idioma estiverem lá, estará tudo pronto.

Após você ter adicionado outros idiomas à imagem do Windows, os aplicativos da caixa de entrada também precisarão ser atualizados para dar suporte aos idiomas adicionados. Para isso, atualize os aplicativos pré-instalados com o conteúdo do ISO dos aplicativos da caixa de entrada. Para executar essa atualização em um ambiente no qual a VM não tem acesso à Internet, você pode usar o modelo de script do PowerShell a seguir para automatizar o processo e atualizar apenas as versões instaladas de aplicativos de caixa de entrada.

#########################################
## 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
		}
	}
}

Importante

Os aplicativos da caixa de entrada incluídos no ISO não são as versões mais recentes dos aplicativos do Windows pré-instalados. Para obter a versão mais recente de todos os aplicativos, você precisa atualizar os aplicativos usando o aplicativo da Windows Store e executar uma pesquisa manual de atualizações depois de instalar os idiomas adicionais.

Quando terminar, desconecte o compartilhamento.

Concluir a personalização da imagem

Depois de instalar os pacotes de idiomas, você pode instalar qualquer outro software que deseja adicionar à imagem personalizada.

Quando terminar de personalizar a imagem, execute a ferramenta de preparação do sistema (sysprep).

Para executar a sysprep:

  1. Abra um prompt de comandos com privilégios elevados e execute o seguinte comando para generalizar a imagem:

    C:\Windows\System32\Sysprep\sysprep.exe /oobe /generalize /shutdown
    
  2. Pare a VM e capture-a em uma imagem gerenciada seguindo as instruções em Criar uma imagem gerenciada de uma VM generalizada no Azure.

  3. Agora você pode usar a imagem personalizada para implantar um pool de host da Área de Trabalho Virtual do Azure. Para saber como implantar um pool de host, confira o Tutorial: Criar um pool de host com o portal do Azure.

Habilitar idiomas no aplicativo de configurações do Windows

Por fim, depois de implantar o pool de host, você precisará adicionar o idioma à lista de idiomas de cada usuário para que ele possa selecionar o idioma preferencial no menu de configurações.

Para garantir que os usuários possam selecionar os idiomas que você instalou, entre como o usuário e execute o cmdlet do PowerShell a seguir para adicionar os pacotes de idiomas instalados ao menu de idiomas. Você também pode configurar esse script como uma tarefa automatizada ou um script de logon que é ativado quando o usuário entra na sessão dele.

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

Depois que um usuário altera as configurações de idioma, ele precisará sair a sessão da Área de Trabalho Virtual do Azure e entrar novamente para que as alterações entrem em vigor.

Próximas etapas

Se você tiver curiosidade sobre problemas conhecidos para pacotes de idiomas, confira Como adicionar pacotes de idiomas no Windows 10, versão 1803 e versões posteriores: problemas conhecidos.

Se você tiver outras dúvidas sobre o Windows 10 Enterprise de várias sessões, confira nossas perguntas frequentes.