Azure – Windows Virtual Desktop Cloud Only (Partie 4)

Windows-Virtual-Desktop-logo-WVD

Pour finir cette maquette, nous allons créer une image template, l’optimiser et la mettre à disposition du service WVD afin d’être déployée massivement.

Création d’une Gloden Image

Pour commencer nous allons créer une nouvelle VM qui nous servira de template.

Dans cet exemple nous allons créer une image pour un pool de type personal, pour les pools de type polled, le fonctionnement est le même, seul l’image Windows utilisé déiffère. En effet, il vous faudra choisir un OS de type Windows 10 multi-session ou Windows Server.

Pour commencer se rendre dans tous les services et rechercher “Virtual  Machines”.

Cliquer sur “Add” ; “Virtual machine”.

Renseigner les options concernant la nouvelle VM à créer qui servira de template (Ressource group, vm name …).

Puis au moment de séléctionner la version de l’OS à déployer, soit choisir une version de Winodws dans la liste ou cliquer sur “See all images”.

Si vous avez cliquer sur “See all images”, filtrer les image sur “Microsoft Windows 10”.

Vous pouvez constater qu’il existe une liste complète des version de Windows 10 à déploer. Notament une version où la suite Office 365 est déjà installée.

Une fois la version de l’image à déployée séléctionnée, continuer de compléter les informations concernant le déploiement de la VM puis cliquer sur “Next” afin de vous rendre à la partie “Networking”.

Séléctionner le vNet et le subnet où sera connectée la nouvelle machine.

Puis cliquer sur “Review + Create”.

Une fois la validation effectuée, cliquer sur “Create”.

Patienter pendant la création de la VM.

Cuctomisation de l'OS

Installer les applications que vous souhaitez (7-Zip, Office 365, Teams …).

Selon la méthode de gestion du cycle de vie de vos images /applications, désactivez éventuellment les mise à jours des produits.

Installer l’agent FSLogix (si nécessaire), se référer à la partie précédente (ici).

Appliquer les mise à jour Windows !

Language pack

Vous l’aurez peut-être remarqué, toutes les version de Windows sont distribuée en version US. Ce qui risque d’être un souci pour nos utilisateurs.

Il est possible d’ajouter d’installer les modules de langues dont nous avons besoins dans les images.

Pour ce faire se rendre sur le KB Microsoft ci-dessous :

Puis télécharger à minima les 3 fichiers ISO corespondant à votre version de Windows (ici : 20H2) :

Une fois téléchargées, nous allons devoir extraire le contenu des fichiers ISO et les merger afin d’obtenir un seul et unique répertoire.

Commencer par extaire le contenu de chaque fichier ISO séparément.

Puis depuis naviguer dans le contenu du premier ISO téléchargé “19041.1.191206-1406.vb_release_CLIENTLANGPACKDVD_OEM_MULTI”.

Notes : la destination des copies de fichiers aura pour racine un partages où j’entreposes me sources à savoir le répertoire : “\\stkwvdsrc.file.core.windows.net\wvdsources\Sources\W10-LanguagePack\20H2\”, vous pouvez utiliser n’importe quel répertoire meêm sur la VM à condition de le supprimer à la fin de l’opération.

Copier le répertoire : .\LocalExperiencePack\

Puis copier le contenu du répertoire : “.\x64\langpacks\” dans le répertoire “.\LocalExperiencePack\”.

Puis naviguer dans le contenu du second .ISO téléchargé “19041.1.191206-1406.vb_release_amd64fre_FOD-PACKAGES_OEM_PT1_amd64fre_MULTI”. Et conpier le contenu dans “.\LocalExperiencePack\”

Et pour finir avec le troisième fichier ISO “19041.508.200905-1327.vb_release_svc_prod1_amd64fre_InboxApps”.

Copier le contenu du répertoire “.\amd64fre\” dans “.\LocalExperiencePack”.

Répéter l’opétaion pour les LXP décrit en fin de KB.

Mainteant que les sources sont prètes, nous pouvons lancer l’installation des packs de langue. Le script ci-dessous provient du KB Microsoft référencé au début de cette partie. Il va installer le pack de langue FR. Penser à limiter le nombre de langue installées sur l’image afin de limiter la taille de celle-ci et le nombre de mise à jour.

########################################################
## 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 = "Z:\Sources\W10-LanguagePack\20H2\LocalExperiencePack"

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

A la fin de l’installation des packs de langue, redémarrer la machine et relancer Windows Update.

Optimisation des images

Concernant l’optimisation de Windows 10 en environnement VDI, Microsoft émet une liste d’optimisations possible. Voir le KB Microsoft ci-dessous :

Pour gagner du temps, un outil a été créé et mis à disposition, ce script reprend la plupart des optimisations référencées dans le KB ci-dessus appliquées aux environnements WVD :

Se rendre dans le repo GitHub et télécharger “Vituel Desktop Optimization Tool”.

Une fois téléchargé, décompresser le fichier .zip. Se rendre dans le répertoire, voici le contenu de celui-ci :

Ouvrir une invite de commande PowerShell en tant qu’administrateur et lancer le script : .\Win10_VirtualDesktop_Optimize.ps1

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
.\Win10_VirtualDesktop_Optimize.ps1 -Verbose
Set-ExecutionPolicy -ExecutionPolicy Restricted

Comme indiqué à la fin du script, rédémarrer la machine efin de terminer l’optimisation.

Puis pour finir le nettoyage, lancer Cleanmgr.exe.

Cleanmgr.exe /SAGESET:11

Voilà, notre image est maintenant optimisée, il ne reste que à lancer un sysprep de celle-ci et la capturer.

Sysprep de l'image

Nous allons maintenant lancer un sysprep de notre machine.

cd c:\Windows\System32\Sysprep
sysprep.exe /oobe /generalize /shutdown
WVD-Golden-0170
Sysprep

A la fin de l’éxécuption de la commande “SYSPREP”, la machine va s’arréter.

WVD-Golden-0180
VM Stoped

Conversion de la VM en template

Notre VM “Template” est prètes à être capturée.

Se rendre dans tous les services –> Virutal Machines –> Tpl-W10Ent20h2

Puis cliquer sur “STOP”.

WVD-Golden-0190
STOP

Dès que la machine est stopée, état : “Stoped deallocated”.

Cliquer sur “Capture”.

WVD-Golden-0200
STOPED deallocated

Dans la section “Basic” de l’assistant de création d’image, renseigner les informations relative au ressource group.

Séléctionner :

  • Share image to Shared image gallery : Yes, share itto a gallery …
  • Target image gallery : séléctionner la SIG créée lors de la phase de prérequits.
  • OS state : Generalize …
  • Target image definition : créer une nouvelle image et la nommer.

Puis renseigner les informations de versionning.

Une fois les inforamtions correctement renseignées, cliquer sur “Review + Create”.

Une fois le validation terminée, cliquer sur “Create” afin de lancer la création de la nouvelle image dan sla SIG.

Après quelques minutes d’attentes, l’image est disponible dans la SIG 🙂

Le nom de l’image que j’ai choisi aurait pu être plus pertinant …

Déploiement d'un pool avec une image custom

Le déploiement de machine à partir d’une custom image hébergée dans une SIG, est identique au scénario de déploiemnt d’une image “standard”.

La suptilité est lors de la séléction de l’image dans le blade de déploiement de machine.

Dans la section “Image type”, séléctionner “Gallery”.

Et cliquer sur “See all images”.

Dans la séléction de l’image, plutôt que de séléctionner l’image depuis la Marketplace, séléctionner “My items”, puis “Shared Images”.

Dans la liste des images, séléctionner l’image à déployer.

L’image custom est renseignée. Vous pouvez poursuivre le déploiement de l’image de manière traditionnelle.

Les machines de votre pool devraient être déployées à partir de l’image personnalisée.

Conclusion /aller plus loin !!!

Nous arrivons à la fin de cette maquette. Je le reconnais, nous sommes très loins d’avoir fait le tour complet du service WVD … Mais j’espère que cette maquette en mode “Full Cloud” vous a donnée les premières briques pour vous lancer dans Windows Virtual Desktop.

Selon le temps que j’ai je vais essayer de continuer à jouer avec cette techno. Pour aller plus loin et continuer sur la techno, voici quelques sujet supplémentaires que vous pouvez tester :

  • Mise en place d’Insign.
  • Autoscaling pour les pool polled.
  • Onboarding dans Microsoft Azure Defender.
  • Onboarding dans Microsoft Defender for Endpoint.
  • Mise à jour des Images
  • Universal printing

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *