Condividi tramite


Aggiungere Language Pack a un'immagine a più sessioni Windows 10

Desktop virtuale Azure è un servizio che gli utenti possono distribuire in qualsiasi momento e ovunque. Ecco perché è importante che gli utenti siano in grado di personalizzare la lingua visualizzata dall'immagine Windows 10 Enterprise multisessione.

Esistono due modi per soddisfare le esigenze di lingua degli utenti:

  • Creare pool di host dedicati con un'immagine personalizzata per ogni lingua.
  • Avere utenti con una lingua e requisiti di localizzazione diversi nello stesso pool di host, ma personalizzare le immagini per assicurarsi di poter selezionare qualsiasi lingua di cui hanno bisogno.

Quest'ultimo metodo è molto più efficiente e conveniente. Tuttavia, spetta a te decidere quale metodo meglio si adatta alle tue esigenze. Questo articolo illustra come personalizzare le lingue per le immagini.

Prerequisiti

Sono necessari gli elementi seguenti per personalizzare le immagini Windows 10 Enterprise multisessione per aggiungere più lingue:

Nota

La condivisione file (repository) deve essere accessibile dalla macchina virtuale di Azure che si prevede di usare per creare l'immagine personalizzata.

Creare un repository di contenuto per i pacchetti e le funzionalità del linguaggio su richiesta

Per creare il repository di contenuto per i pacchetti di lingua e i FOD e un repository per i pacchetti di App posta in arrivo:

  1. In una macchina virtuale di Azure scaricare le immagini ISO, FOD e Posta in arrivo multi-lingua Windows 10 per Windows 10 Enterprise immagini a più sessioni, versione 1903/1909 e 2004 dai collegamenti in Prerequisiti.

  2. Aprire e montare i file ISO nella macchina virtuale.

  3. Passare al Language Pack ISO e copiare il contenuto dalle cartelle LocalExperiencePacks e x64\langpacks , quindi incollare il contenuto nella condivisione file.

  4. Passare al file FOD ISO, copiarne tutto il contenuto, quindi incollarlo nella condivisione file.

  5. Passare alla cartella amd64fre nell'ISO App posta in arrivo e copiare il contenuto nel repository per le app di posta in arrivo preparate.

    Nota

    Se si usa una risorsa di archiviazione limitata, copiare solo i file per le lingue necessarie per gli utenti. È possibile distinguere i file esaminando i codici lingua nei relativi nomi di file. Ad esempio, il nome del file francese è "fr-FR". Per un elenco completo dei codici lingua per tutte le lingue disponibili, vedi Language Pack disponibili per Windows.

    Importante

    Alcune lingue richiedono tipi di carattere aggiuntivi inclusi nei pacchetti satellite che seguono convenzioni di denominazione diverse. Ad esempio, i nomi dei file dei tipi di carattere giapponesi includono "Jpan".

    Esempio dei Language Pack giapponesi con il tag di lingua

  6. Impostare le autorizzazioni per la condivisione del repository di contenuto della lingua in modo da avere accesso in lettura dalla macchina virtuale che verrà usata per compilare l'immagine personalizzata.

Creare manualmente un'immagine personalizzata Windows 10 Enterprise multisessione

Per creare manualmente un'immagine personalizzata Windows 10 Enterprise multisessione:

  1. Distribuire una macchina virtuale di Azure, quindi passare a Raccolta di Azure e selezionare la versione corrente di Windows 10 Enterprise multisessione in uso.

  2. Dopo aver distribuito la macchina virtuale, connettersi a essa usando RDP come amministratore locale.

  3. Assicurarsi che la macchina virtuale disponga di tutti i Aggiornamenti windows più recenti. Scaricare gli aggiornamenti e riavviare la macchina virtuale, se necessario.

    Importante

    Dopo aver installato un Language Pack, è necessario reinstallare l'aggiornamento cumulativo più recente installato nell'immagine. Se non si reinstalla l'aggiornamento cumulativo più recente, potrebbero verificarsi errori. Se l'aggiornamento cumulativo più recente è già installato, Windows Update non lo offre di nuovo. È necessario reinstallarlo manualmente. Per altre informazioni, vedere Panoramica delle lingue.

  4. Connettersi al repository di condivisione file del pacchetto del linguaggio, foD e App posta in arrivo e montarlo in un'unità lettera (ad esempio, unità E).

Creare automaticamente un'immagine personalizzata Windows 10 Enterprise multisessione

Se si preferisce installare le lingue tramite un processo automatizzato, è possibile configurare uno script in PowerShell. È possibile usare l'esempio di script seguente per installare i Language Pack spagnolo (Spagna), francese (Francia) e cinese (RPC) e i pacchetti satellite per Windows 10 Enterprise multisessione versione 2004. Lo script integra nell'immagine il Language Interface Pack e tutti i pacchetti satellite necessari. Tuttavia, è anche possibile modificare questo script per installare altri linguaggi. Assicurarsi solo di eseguire lo script da una sessione di PowerShell con privilegi elevati, altrimenti non funzionerà.

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

Lo script potrebbe richiedere del tempo a seconda del numero di lingue da installare.

Al termine dell'esecuzione dello script, verificare che i Language Pack siano installati correttamente passando all'ora di avvio>delle impostazioni>& lingua>. Se i file di lingua sono presenti, si è tutti impostati.

Dopo aver aggiunto altre lingue all'immagine Windows, è necessario aggiornare anche le app di posta in arrivo per supportare le lingue aggiunte. Questa operazione può essere eseguita aggiornando le app preinstallate con il contenuto delle app di posta in arrivo ISO. Per eseguire questo aggiornamento in un ambiente in cui la macchina virtuale non ha accesso a Internet, è possibile usare il modello di script di PowerShell seguente per automatizzare il processo e aggiornare solo le versioni installate delle app della posta in arrivo.

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

Le app di posta in arrivo incluse nell'ISO non sono le versioni più recenti delle app di Windows preinstallate. Per ottenere la versione più recente di tutte le app, devi aggiornare le app usando l'app di Windows Store ed eseguire una ricerca manuale degli aggiornamenti dopo aver installato le lingue aggiuntive.

Al termine, assicurarsi di disconnettere la condivisione.

Completare la personalizzazione dell'immagine

Dopo aver installato i Language Pack, è possibile installare qualsiasi altro software da aggiungere all'immagine personalizzata.

Dopo aver completato la personalizzazione dell'immagine, sarà necessario eseguire lo strumento di preparazione del sistema (sysprep).

Per eseguire sysprep:

  1. Aprire un prompt dei comandi con privilegi elevati ed eseguire il comando seguente per generalizzare l'immagine:

    C:\Windows\System32\Sysprep\sysprep.exe /oobe /generalize /shutdown
    
  2. Arrestare la macchina virtuale, quindi acquisirla in un'immagine gestita seguendo le istruzioni in Creare un'immagine gestita di una macchina virtuale generalizzata in Azure.

  3. È ora possibile usare l'immagine personalizzata per distribuire un pool di host di Desktop virtuale Azure. Per informazioni su come distribuire un pool di host, vedere Esercitazione: Creare un pool di host con il portale di Azure.

Abilitare le lingue nell'app delle impostazioni di Windows

Infine, dopo aver distribuito il pool di host, è necessario aggiungere la lingua all'elenco delle lingue di ogni utente in modo che possa selezionare la lingua preferita nel menu Impostazioni.

Per assicurarsi che gli utenti possano selezionare le lingue installate, accedere come utente, quindi eseguire il cmdlet di PowerShell seguente per aggiungere i Language Pack installati al menu Lingue. È anche possibile configurare questo script come un'attività automatizzata o uno script di accesso che si attiva quando l'utente accede alla sessione.

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

Dopo aver modificato le impostazioni della lingua, un utente dovrà disconnettersi dalla sessione di Desktop virtuale Azure ed eseguire di nuovo l'accesso per rendere effettive le modifiche.

Passaggi successivi

Per informazioni sui problemi noti per i Language Pack, vedere Aggiunta di Language Pack in Windows 10 versione 1803 e versioni successive: Problemi noti.

Per altre domande su Windows 10 Enterprise multisessione, vedere le domande frequenti.