Aggiungere Language Pack a un'immagine con più sessioni di Windows 10
Desktop virtuale Azure è un servizio che gli utenti possono distribuire in qualsiasi momento, ovunque. Ecco perché è importante che gli utenti siano in grado di personalizzare la lingua visualizzata dall'immagine multisessione di Windows 10 Enterprise.
È possibile soddisfare in due modi le esigenze degli utenti a livello di lingua:
- Creare pool di host dedicati con un'immagine personalizzata per ogni lingua.
- Raggruppare gli utenti con requisiti diversi a livello di lingua e localizzazione nello stesso pool di host, ma personalizzare le rispettive immagini per garantire che possano selezionare la lingua necessaria.
Quest'ultimo metodo è molto più efficiente e conveniente. È tuttavia possibile decidere quale metodo è più adatto alle esigenze specifiche. Questo articolo illustra come personalizzare le lingue per le immagini.
Prerequisiti
Sono necessari gli elementi seguenti per personalizzare le immagini multisessione di Windows 10 Enterprise per aggiungere più lingue:
Una macchina virtuale di Azure con una versione supportata di Windows 10 Enterprise multisessione.
ISO della lingua, disco 1 FOD (Feature on Demand) e ISO delle app incluse della versione del sistema operativo usata dall'immagine. È possibile scaricarli qui:
ISO lingua:
DISCO su richiesta 1 ISO:
Iso app posta in arrivo:
Se usi i file ISO LXP (Local Experience Pack) per localizzare le immagini, dovrai anche scaricare l'ISO LXP appropriato per un'esperienza di lingua ottimale. Usare le informazioni in Aggiunta di lingue in Windows 10: Problemi noti per capire quale dei seguenti ISO LXP è adatto per te:
- Windows 10, versione 2004 o successiva 01C 2021 LXP ISO
- Windows 10, versione 2004 o successiva 02C 2021 LXP ISO
- Windows 10, versione 2004 o successiva 04B 2021 LXP ISO
- Windows 10, versione 2004 o successiva 05C 2021 LXP ISO
- Windows 10, versione 2004 o successiva 07C 2021 LXP ISO
- Windows 10, versione 2004 o successiva 09C 2021 LXP ISO
- Windows 10, versione 2004 o successiva 10C 2021 LXP ISO
- Windows 10, versione 2004 o successiva 11C 2021 LXP ISO
- Windows 10, versione 2004 o successiva 01C 2022 LXP ISO
- Windows 10, versione 2004 o successiva 02C 2022 LXP ISO
- Windows 10, versione 2004 o successiva 04C 2022 LXP ISO
- Windows 10, versione 2004 o successiva 06C 2022 LXP ISO
Una condivisione file di Azure o una condivisione file in una macchina virtuale di File server Windows
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 language pack e le funzionalità su richiesta
Per creare il repository di contenuto per i language pack e i FOD e un repository per i pacchetti delle app incluse:
In una macchina virtuale di Azure scaricare le immagini ISO, FOD e App di Posta in arrivo per Windows 10 Enterprise multisessione versione 1903/1909 e 2004 dai collegamenti in Prerequisiti.
Aprire e montare i file ISO nella macchina virtuale.
Passare al Language Pack ISO e copiare il contenuto dalle cartelle LocalExperiencePacks e x64\langpacks , quindi incollare il contenuto nella condivisione file.
Passare al file ISO foD, copiarne tutto il contenuto e incollarlo nella condivisione file.
Passare alla cartella amd64fre nell'ISO delle app incluse e copiare il contenuto nel repository per le app incluse preparate.
Nota
Se si usa una risorsa di archiviazione limitata, copiare solo i file per le lingue necessarie agli utenti. È possibile distinguere i file esaminando i codici di lingua nei relativi nomi di file. Ad esempio, il file francese ha il codice "fr-FR" nel nome. Per un elenco completo dei codici di lingua per tutte le lingue disponibili, vedere 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 di carattere giapponesi includono "Jpan".
Configurare le autorizzazioni sulla condivisione del repository del contenuto relativo alla lingua in modo da avere accesso in lettura dalla macchina virtuale che verrà usata per compilare l'immagine personalizzata.
Creare manualmente un'immagine di Windows 10 Enterprise multisessione
Per creare manualmente un'immagine di Windows 10 Enterprise multisessione:
Distribuire una macchina virtuale di Azure, quindi passare alla Raccolta di Azure e selezionare la versione corrente di Windows 10 Enterprise multisessione in uso.
Dopo la distribuzione della macchina virtuale, connettersi alla macchina virtuale usando RDP come amministratore locale.
Assicurarsi che nella macchina virtuale siano disponibili tutti gli aggiornamenti di 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, è possibile che si verifichino errori. Se l'aggiornamento cumulativo più recente è già installato, Windows Update non lo offre più; è necessario reinstallarlo manualmente. Per altre informazioni, vedere Panoramica delle lingue.
Connettersi al repository della condivisione file di language pack, FOD e app incluse e montarlo in un'unità indicata da una lettera, ad esempio l'unità E.
Creare automaticamente un'immagine personalizzata di Windows 10 Enterprise multisessione
Se si preferisce installare le lingue tramite un processo automatizzato, è possibile configurare uno script in PowerShell. Puoi usare l'esempio di script seguente per installare i Language Pack spagnoli (Spagna), Francese (Francia) e Cinese (PRC) e i pacchetti satellite per Windows 10 Enterprise multisessione versione 2004. Lo script integra il Language Interface Pack e tutti i pacchetti satellite necessari nell'immagine. Tuttavia, è anche possibile modificare questo script per installare altri linguaggi. Assicurarsi di eseguire lo script da una sessione di PowerShell con privilegi elevati o che non funzioni.
########################################################
## 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 che è necessario installare.
Al termine dell'esecuzione dello script, verificare che i Language Pack siano installati correttamente passando a Impostazioni di avvio>>e lingua.> Se i file di lingua sono presenti, tutti sono impostati.
Dopo aver aggiunto altre lingue all'immagine di Windows, è necessario aggiornare anche le app posta in arrivo per supportare le lingue aggiunte. Questa operazione può essere eseguita aggiornando le app preinstallate con il contenuto delle app 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 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 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 avere installato i language pack, è possibile installare qualsiasi altro software da aggiungere all'immagine personalizzata.
Al termine della personalizzazione dell'immagine, sarà necessario eseguire lo strumento di preparazione del sistema (sysprep).
Per eseguire sysprep:
Aprire un prompt dei comandi con privilegi elevati ed eseguire questo comando per generalizzare l'immagine:
C:\Windows\System32\Sysprep\sysprep.exe /oobe /generalize /shutdown
Arrestare la macchina virtuale e quindi acquisire la macchina virtuale in un'immagine gestita seguendo le istruzioni riportate in Creare un'immagine gestita di una macchina virtuale generalizzata in Azure.
È 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 Impostazioni di Windows
Dopo avere distribuito il pool di host, sarà infine necessario aggiungere la lingua all'elenco di lingue di ogni utente, in modo che possano selezionare la lingua preferita nel menu Impostazioni.
Per assicurarsi che gli utenti possano selezionare le lingue installate, accedere come l'utente, quindi eseguire questo cmdlet di PowerShell per aggiungere i language pack installati al menu Lingue. È anche possibile configurare questo script come attività automatica o 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
Quando un utente completa la modifica delle impostazioni per la lingua, dovrà disconnettersi dalla sessione di Desktop virtuale Azure e accedere di nuovo 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.