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 !!!
Prérequis
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.
Sur cette page, vous pourrez installer Windows ADK ainsi que Windows PE pour Windows ADK.
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 :
Windows PE
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 :)
Microsoft Deployment Toolkit
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.
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)
Création du Capture Deployment Share
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
Changer les propriétés du Capture Deployment Share
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.
Troubleshoot
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 !
Importer un Système d’Exploitation
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 :
Création d’un task sequence de capture
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 :
Update le Capture Deployment Share
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
Installation propre d’un système Windows 11
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
Passage en mode OOBE – Généralisation de l’image
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 !
Nettoyer la machine
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 :
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 :
Les problèmes
C’est probablement ici que vous rencontrerez le plus de problème dans le tutoriel.
Connexion au partage
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 :
CustomSettings.ini
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 :
Automatiser le déploiement de certaines applications
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
L’exemple de TresorIT
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.
Déploiement d’une nouvelle task sequence
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 :
Regénérer l’image de boot
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 :
Configuration 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
DHCP (Optionnel)
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 !
Troubleshooting
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 :
Backslash
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
BCDBootEx
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)
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
ZTI Error Path not found (76)
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
Redémarrage en boucle
Bloqué à l’étape “recover from domain”
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