Deploiement automatique PXE avec MDT, Sysprep et WDS

Contexte & Objectifs

En tant que sysadmin, je suis chargé de monter chaque poste à la main à chaque nouvelle arrivée. Je dois installer l’ISO de Windows 11 à la main, ainsi que les applications nécessaires, les configurations de certains logiciels etc… Et tout cela peut engendrer des erreurs ou des oublis !

C’est pour cela que j’ai décidé de faire ce tutoriel, car la e-littérature a ses limites. J’ai galéré à trouver des tutoriels corrects et complets, et par dessus tout qui faisait ce que je voulais ! J’ai du grouper des bouts de tutoriel à droite à gauche pour former le miens.

Dans ce petit tuto, nous verrons comment monter un serveur WDS (Windows Deployment Services, PXE –PreBoot Execution Environment– mais version Windows) ainsi que l’utilisation du MDT (Microsoft Deployment Toolkit) et la capture d’une image Windows 11. Le rôle WDS ne suffit pas à lui tout seul pour déployer Windows 11, il s’arrête à Windows 10. Les machines fraîchement déployées seront ajoutées en même temps à l’Active Directory (AD DS). Le rôle AD DS n’est pas obligatoire mais dans le contexte d’entreprise il est particulièrement présent. Pour ce tutoriel, il sera donc présent.

Il est donc nécessaire de passer par la MDT pour déployer automatiquement Windows 11 ! Mais comme rien n’est clair chez nos amis Microsoft, nous avons tout de même besoin de WDS qui est en pleine dépréciation pour jouer le rôle de PXE.

TLDR :

  • Dans un premier temps nous mettrons en place une sequence task pour capturer notre image de Windows 11.
  • Ensuite nous capturerons cette image pour créer une image parfaite.
  • Puis nous importerons un nouvel OS depuis cette image parfaite.
  • Et pour finir nous créerons une task sequence qui déploiera ce nouvel OS.
  • Par dessus tout ça, WDS viendra jouer le rôle de PXE avec l’image LiteTouchx64.wim

Allons-y !!!

Pour mener à bien le projet, il faudra une machine Windows Server (pour ma part, Windows Server 2022) avec deux volumes différents (c’est préférable mais pas obligatoire) et une machine Windows 11 (fonctionne aussi avec Windows 10). Il faudra aussi un Active Directory. Les rôles AD DS et WDS seront déployés sur cet unique serveur. Il vous faudra aussi un serveur DHCP quelconque

Pour résumer :

  • Windows Server
    • Rôle AD DS
    • Rôle WDS
  • Poste Client Windows 11
  • Un serveur DHCP (peut être intégré comme rôle du serveur)

Phase 1 - Installation des outils & rôles

Pour faire fonctionner le tout, vous devrez installer 4 outils différents. Et si vous ne disposez pas d’un Active Directory, veuillez installer le rôle en supplément. Pour ma part, le rôle WDS et AD DS sont sur la même machine.

Vous pouvez l’installer ici

Sur cette page, vous pourrez installer Windows ADK ainsi que Windows PE pour Windows ADK.

  • Déploiement de Windows : Fournit des outils pour personnaliser, déployer et évaluer les systèmes d’exploitation Windows sur de nouveaux ordinateurs.
  • Configuration des images : Outils pour créer et configurer des images de disque Windows (par exemple, Deployment Imaging Service and Management Tool - DISM).

Une fois téléchargé, l’executable adksetup.exe s’ouvrira sur cette fenêtre :

Sélectionnez le chemin par défaut

Non je veux pas donner mes infos à Microsoft!

Acceptez la licence et vous pouvez sélectionner ces trois cases puis installer :

  • Environnement préinstallation : Windows PE est une version légère de Windows utilisée pour installer, déployer et réparer les versions complètes de Windows.
  • Dépannage et récupération : Utilisé pour démarrer un PC quand le système d’exploitation principal ne fonctionne pas, pour récupérer des données ou diagnostiquer des problèmes.
  • Préparation des installations : Permet d’automatiser l’installation de Windows sur des machines nues en chargeant l’image de l’OS et en configurant les disques.

Une fois l’exécutable adkwinsetup.exe téléchargé, exécutez-le

Cliquez sur suivant, pareil pour la licence et la télémétrie

Cliquer sur Installer puis attendre :)

  • Déploiement automatisé : Outil gratuit de Microsoft pour automatiser le déploiement de systèmes d’exploitation Windows et de logiciels sur de nouveaux ordinateurs ou des ordinateurs existants (comparé à MECM)
  • Intégration avec ADK : Utilise les outils de Windows ADK pour créer et gérer des images de déploiement.
  • Task sequences : Permet de créer des task sequences pour automatiser des installations complexes incluant la configuration de l’OS, l’installation de logiciels, les mises à jour et les personnalisations spécifiques (super poussé)
  • Support multi-plateforme : Peut être utilisé pour déployer non seulement Windows, mais aussi des applications et des configurations sur des systèmes divers.

Vous pouvez télécharger la MDT ici

Prendre la version x64 :

Et cliquez sur suivant tout le long.

Pour installer ce rôle, rien de plus simple ! Dans votre gestionnaire de serveur, cliquez sur Gérer, puis ajouter des rôles et fonctionnalités

Clic Clic Clic ! Puis cliquez sur Windows Deployment Services

Laissez les options par défaut

Clic Clic Clic…. Puis installer !

Une fois ces 4 composants installés, nous pouvons passer à la Phase 2. (pour notre tuto, ne pas oublier le rôle AD DS)

Phase 2 - Création d’une capture server-side

Dans un premier temps, nous allons créer un nouveau Share dans la MDT, mais avant, voici mes périphériques :

  • C : Disque système
  • D : ISO monté de Windows 22
  • E : Le disque sur lequel se trouvera les partages et les images

Lancer le Deployment WorkBench (en vérité c’est la MDT)

Dans cette partie, nous allons créer un partage réseau sur le volume E: qui servira à capturer les images Windows 11.

Cliquez sur New Deployment Share

On va sur notre volume E: et on créer un dossier, avec le nom “capture” pour mieux s’y retrouver

On nomme le partage de la même manière (avec un $ à la fin pour signifier un partage)

Puis laissez tourner

Clic droit / Propriétés sur le Capture deployment share

Dans un premier temps : décocher x86

Dans l’onglet Rules, ajouter l’instruction DoCapture=YES pour signifier que ce partage est susceptible de recevoir des images de capture.

Dnas l’onglet Windows PE, décochez Generate a Lite Touch Windows PE WIM file car nous n’avons pas besoin de l’architecture x86.

Il est très très très commun qu’à cet endroit là la MMC plante. It’s not a bug it’s a feature ! Comme nous voulons décochez quelque chose en rapport avec x86, mais que les dernières versions de la MDT n’incluent plus x86, la MCC plante car elle ne trouve pas les fichiers souhaités.

Voyez, aucun dossier x86 à cet endroit…

Génial…… Pour résoudre ce problème, il faut :

Copier le dossier amd64 et le renommer x86

Les fichiers sont là même si la version n’est pas forcément la bonne. Dans tous les cas, ça marche.

Je disais donc, dans Windows PE décochez Generate a Lite Touch Bootable ISO image (en x64)

Dans Monitoring, cochez la seule case :

Fini pour cette partie !

Passons maintenant à l’import de Windows 11. Les fichiers de capture d’image disposent de l’extension .wim, pour Windows Image Format.

Sur votre share, Importer un système d’exploitation

Selectionnez full set of sources files car nous allons y passer l’ISO de Windows 11 monté. Veuillez brancher et monter l’ISO sur la machine. Pour ma part, c’est une machine dans VirtualBox, et l’ISO est inséré.

On va chercher la clé à la racine :

Mettre un petit nom :

Attendre l’import

Une fois fini, on peut supprimez les versions que l’on ne souhaitera pas utiliser, pour faire un peu de ménage :

Maintenant, on va créer une nouvelle task sequence qui permettra de capturer une image !

Clic droit et New Task Sequence

Donnez un nom parlant, notamment avec le mot capture car c’est plus simple pour s’y repérer.

Selectionnez Sysprep and Capture

Choisir sa version de Windows 11, pour ma part je n’ai laissé que la Pro

Spécifiez ou non votre clé de produit, pour ma part je ne le précise pas.

Renseignez le compte par défaut, ainsi que le domaine. Si vous n’avez pas de domaine, ce n’est pas grave, mettez Microsoft par exemple.

Rentrez le mot de passe du compte Administrateur par défaut de la machine

Une fois tout ça fini, vous devriez voir apparaître la task sequence :

Pour générer une image LiteTouchx64.wim, qui servira pour le démarrage en réseau (PXE), il faut mettre à jour le partage depuis MDT.

Cochez Completly regenerate the boot images

Patientez, les images savent se faire attendre !

Pour résumer, sur le partage DeploymentShareCapture$ nous avons importé un OS à partir des fichiers sources (ISO monté) et seléctionné la version qui nous interesse. Nous avons créé en conséquence une task sequence de capture qui viendra capturer notre système d’exploitation. Et pour finir nous avons mit à jour le partage (qui a régénéré notre LiteTouchx64).

Phase 3 - Création d’une image client-side

Démarrez sur un ISO bootable de Windows 11 (VirtualBox ou non)

Installez Windows comme d’habitude :

Je n’ai pas de clé de produit ;)

Veillez à bien sélectionner la bonne version :)

Installez Windows uniquement, puis selectionnez le disque sur lequel vous voulez installer le système d’exploitation

Si vous procédez à l’installation normale de Windows 11, l’image capturée et donc pas conséquent l’image déployée sera l’exacte même, avec le même nom d’utilisateur etc… Ceci peut être pertinent, mais dans mon cas je veux généraliser l’image pour avoir un système propre et se connecter aux comptes dans l’Active Directory

Une fois arrivé ici, faite le raccourci CTRL + SHIFT + F3

Cela va vous faire passer en mode OOBE

Et vous arrivez directement Administrateur du système

Une fenêtre disant que vous êtes dans un mode de préparation est ouverte, ne la fermez pas , minimisez là.

A partir de là, vous pouvez créer votre image de Windows 11, avec les applications que vous voulez (ou presque). Installons quelques logiciels comme Firefox, KeepassXC ou VeraCrypt. Une fois ces logiciels installés, il faut faire quelques manipulations.

Pensez à mettre à jour votre Windows grâce à Windows update sinon ça plantera !

Alors oui, même si elle est neuve, il faut la nettoyer

On peut supprimer One drive : Dans Ajouter/Supprimer des programmes -> Supprimer Microsoft OneDrive par exemple

Désactiver les mises à jours des applications du Windows Store :

  • Windows + R -> gpedit.msc

    • Configuration Ordinateur / Modèle d’administration / Compostant Windows / Windows Store
      • Désactiver le téléchargement automatique et l’installation des mises à jour
  • Supprimer les shadow copies et points de restauration existants : vssadmin delete shadows /All /Quiet

  • Supprimer les fichiers de cache de Windows Update : `del %windir%\SoftwareDistribution\Download*.* /f /s /q

  • Disk cleanup : Cleanmgr /sagerun:1

  • Vider la corbeille : Clear-RecycleBin -Force

En bref, on doit clean le plus possible la machine.

Vous pouvez maintenant passer votre machine dans un état spécial pour la capture avec cette commande :

powershell

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State" /v ImageState /t REG_SZ /d IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE /f

Puis redémarrez.

Vous pourrez finalement lancer la généralisation de la machine en mode OOBE puis en la redémarrant.

Selon l’erreur que vous avez, vous pouvez aller voir dans : C:/Windows/System32/Sysprep/Panther/setupact.log

Dans mon cas, le fichier d’erreur (setupact) me dit qu’il n’arrive pas à généraliser la machine car le package Microsoft.BingSearch_1.0.79.0_x64__8wekyb3d8bbwe pose problème. Supprimons-le :

powershell

Remove-AppxPackage -Package Microsoft.BingSearch_1.0.79.0_x64__8wekyb3d8bbwe

Les problèmes C’est probablement ici que vous rencontrerez le plus de problème dans le tutoriel.

Après le redémarrage, il faudra se connecter au partage DeploymentShareCapture$ pour exécuter le script VBS LiteTouchx64.vbs.

Faite le raccourci Windows + R et tapez le nom du partage : \\WDS\DeploymentShareCapture$

WDS correspondant au nom de la machine hébergeant le partage

Et exécuter le script LiteTouch (script VBS). Double clic dessus

Une fenêtre s’ouvre, et nous affiche la task sequence à séléctionner. Dans notre cas, nous avons créé une seule task sequence qui va capturer l’image.

Et choisir le nom de l’image, quelque chose de parlant.

Renseignez les identifiants d’un compte ayant accès au partage.

Dernier check up

Votre Windows 11 redémarrera après avoir été capturé

Cliquer sur Finish

Une fois l’image capturée, elle se trouvera dans le partage DeploymentShareCapture$

Phase 4 - Création d’un Deployment Share Standard

Pour ce tutoriel, j’ai décidé de séparer les usages et donc les partages. J’ai créé un partage auparavant pour la capture d’une image nommé DeploymentShareCapture$ et dans cette partie je vais en créer un nouveau avec le nom DeploymentShare$.

Suivre la même procédure -> Clic droit, nouveau Deployment Share

Choisir un nom correct

Et laisser par défaut le reste.

Pour déployer des applications en particulier, vous pouvez passer par ce nouveau share pour en déployer une :

Ce fichier peut être édité et gagner beaucoup de temps si les déploiements sont nombreux, car il évite de nombreux clics. Pour l’éditer, clic droit sur le partage et propriété, et allez dans Rules. Voici le miens :

text

[Settings]
Priority=Default
Properties=MyCustomProperty

[Default]
OSInstall=Y
SkipCapture=NO
SkipProductKey=YES
SkipComputerBackup=NO
SkipBitLocker=NO
EventService=http://WDS:9800
JoinDomain=auteqia.local
MachineObjectOU=OU=Ordinateurs,DC=auteqia,DC=local
DomainAdmin=Administrateur
DomainAdminDomain=auteqia.local
SkipUserData=YES
SkipLocaleSelection=YES
UILanguage=fr-FR
UserLocale=fr-FR
SkipSummary=YES
Applications001={20ab9ede-ec29-45a1-af20-abcd1dfb765f}

Par défaut, certaines applications ne peuvent pas être généralisée pour la machine entière. Je n’ai pas encore compris pourquoi, mais je sais juste que certaines en particulier ne veulent pas. Nous pouvons spécifier les sources de l’applications à déployer sur l’image qui sera distribuée.

Clic droit puis New Application

Se rendre sur la page de téléchargement de TresorIT ici et placer les sources dans un répertoire

Sélectionnez le répertoire où se trouve les sources

Pour exécuter silencieusement, vous pouvez voir si votre application possède des paramètres qui le permettent :

Notre commande sera donc :

powershell

.\Tresorit.exe /S /v/qn

Et hop clic clic clic et fini !

Il est désormais temps d’aller créer sa Golden Machine, de la capturer pour plus tard la déployer :)

Phase 5 - Importer le nouvel OS & Task Sequence

Comme nous avons capturé notre image parfaite, notre fichier .wim est donc déposé sur notre share. Il faut désormais l’importer en tant que nouveau système d’exploitation dans le share fraichement créé.

Clic droit et Import Operating System

On choisis notre image custom

On va choisir notre image à nous dans E:\DeploymentShareCapture\Captures\

Chosir la première option

Faites suivant plusieurs fois et attendez l’import.

Une fois le système d’exploitation importé, nous allons lancer une nouvelle task sequence mais pas de capture comme avant. Créer une nouvelle task sequence sur le share DeploymentShare :

Laisser par défaut, c’est celle qui nous faut !

Selectionnez notre capture toute fraiche :

Ici on peut spécifier le mot de passe du compte Administrateur Local de la machine déployée :

Et laissez finir la task sequence.

Nous avons désormais quelque chose comme ceci :

Sur ce partage, nous allons simplement le mettre à jour pour regénérer l’image qui servira pour boot.

A noter, l’image doit venir du DeploymentShare et non pas du DeploymentShareCapture

Clic droit, propriété du partage :

Décochez x86 :

Décochez l’ISO bootable sur x86 et x64 :

Maintenant, mettez à jour le deployment share

Pour résumer : nous avons créé une image parfaite de Windows 11, puis l’avons capturé et importé son système d’exploitation. Par dessus, nous avons créé une task sequence de déploiement de l’OS parfait.

Il nous reste plus qu’a configurer le WDS qui correspond au PXE.

Phase 6 - WDS et LiteTouchx64

Pour pouvoir démarrer en réseau, il nous faut le rôle WDS (Windows Deployment Services). Mais comme ce dernier n’est pas compatible avec Windows 11, nous avons du passer par la MDT. Cette dernière ne faisant pas boot en réseau, il faut donc combiner les deux.

Lancer la console d’administration du rôle :

Clic droit sur votre serveur, configurer :

Il nous met en garde par rapport à la résolution de nom et du DHCP. Pour ma part, c’est ok !

Comme c’est un serveur Windows, et que mon environnement et mes postes seront dans un AD, je choisi intégré à l’AD

Je choisis un dossier sur la partition supplémentaire sur laquelle se trouve déjà mes dossiers/partages MDT :

Pour ma part, je choisis “répondre à tous les clients”

Décocher Ajouter les images au serveur maintenant.

Désormais dans le rôle actif, cliquer sur Image de démarrage et ajouter en une. Nous allons ajouter notre image fraichement regénéré de LiteTouchx64

Clic clic clic, l’image est importée !

Phase 7 - Déploiement

Attention, selon si votre serveur DHCP est situé sur la même machine que votre WDS & MDT, vous devrez cocher ces cases :

Vous devrez aussi ajouter une option d’étendue 066 Boot Server Host Name avec l’IP du serveur MDT

Ensuite, choisir l’option 067 et rajouter le nom de fichier \boot\x64\wdsnbp.com

Attention, ce nom de fichier varie selon les systèmes et la manière dont vous avez construit vos serveurs. Les autres solutions possible :

  • \boot\x64\wdsnbp.efi
  • \boot\x86\wdsnbp.com
  • \\boot\\x64\\wdsnbp.com -> pour certains serveurs Linux

Vous devriez avoir quelque chose de la sorte

Il est désormais l’heure de test ! Lancer une machine (virtuelle ou non) et laissez là démarrer sur le réseau. Pour ma part, ce sera une machine virtuelle.

Choisir Lite Touch PE x64

Mettre le clavier dans la bonne disposition puis lancer le déploiement

Choisir la task sequence de déploiement créé précédemment.

Attention, il se peut que des noms aient changé mais c’est bien la task sequence de la partie déploiement et non pas capture !

Rentrer les informations nécessaires

Suivre par défaut

Selectionnez les applications à installer, si toutes fois vous en avez spécifié.

Choisir le mot de passe du compte Administrateur built-in de Windows :

Vous pouvez choisir d’activer Bitlocker et de stocker la clé dans l’Active Directory. Attention, pour que les clés soient réellement stockées, il faut avoir préparé la configuration en amont. Tuto Microsoft

Et lancez le déploiement !!

En même temps, vous devriez voir votre déploiement dans Monitoring

Une fois l’installation finie, l’écran suivant apparaît :

Attention au boot order, ça risque de redémarrer sur le PXE à nouveau

Laissez démarrer et chercher les mises à jour

Et voilà !!

Notre machine a été capturée, généralisée et déployée !

La mise en place de tous ces services vient avec son lot de complications. J’ai eu beaucoup de mal à me dépatouiller de certaines erreurs bloquantes. En voici quelques unes :

Selon votre fournisseur DHCP, il faudra changer le nom du fichier de boot pour remplacer .com par .efi. De plus, le chemin spécifié doit prendre deux anti slash, exemple : \\boot\\x64\\wdsnbp.efi

Il peut – va – probablement vous arriver cette erreur là BCDBootEx :

Ce qui est terrible avec cette erreur, c’est que c’est à la touuuute fin que vous vous en rendez compte. Pour patcher cette erreur (qui est une erreur normale, connue et reconnue mais qui ne dérange pas Microsoft)

  • Téléchargez ce script sur Github : Script
  • Mettez ce script dans votre répertoire de script sur votre DeploymentShare$

Allez modifiez votre task sequence de déploiement, clic droit modifier les propriétés

Ajouter “Run Command Line” puis renseignez : cscript.exe "%SCRIPTROOT%\FixUEFIDetection.wsf

Pour activer le script, faite flèche du haut en l’ayant sélectionné, de manière à ce qu’il soit entre Validate et Format and Partition Disk (BIOS) en cliquant sur Up.

Vous pouvez réessayer maintenant de déployer votre système avec le boot PXE

Cette erreur vient lorsque votre nom de partage dépasse 255 caractères. D’une manière ou d’une autre ça ne marche pas. Merci Microsoft!

Changer son nom pour un nom plus court dans le système de fichier

Cliquer sur Close Deployment Share

Puis cliquer sur Open, et retourner le chercher

Et retourner partager Dep11

Changer les noms ici

Regénérer l’image de boot en faisant une update du share

Votre machine toute fraîche ne plante pas, mais presque. Elle redémarre en boucle en demandant une nouvelle install ou de reprendre l’ancienne. Si vous êtes bloqué à l’étape “Recover From Domain”, cela veut peut être dire que le compte que vous utilisez n’as pas les droits d’ajouter l’ordinateur dans l’Active Directory

Changez le compte de manière à avoir les droits sur l’Active Directory

Et sinon, changez ce paramètre à Manual Recover

Lorsqu’on essaye d’installer les applications spécifiées, ça plante!

Conclusion

Le tuto n’a pas été facile à faire ! Content d’avoir pu automatiser ça. Dommage pour toutes les erreurs

WDS – Installation et Configuration d’un Serveur WDS en Mode Autonome

MDT – Installer Configurer et Déployer Windows 11 avec WDS et MDT

MDT Deploy AIDE POUR LE TROUBLESHOOT

How to fix MDT Deployment Workbench Windows PE crash

Youtube - How to Sysprep and Capture Windows 11 22H2 using Microsoft Deployment Toolkit (MDT and WDS)

DHCP and WDS

Fix Failure (5616): 15299: Verify BCDBootEx

Customsettings.ini