15/11/2024

Déploiement MDT - WDS

CustPE : Réaliser un dual boot WinPE LTI/Windows

I. Présentation

Tout comme n'importe quel technicien Windows, vous êtes surement confronté régulièrement au besoin d'une réinstallation complète à partir un système pourtant opérationnel. Avec MDT, c'est plutôt simple et cela passe par les scénarios de déploiement LiteTouch de type "NEW-COMPUTER". Toutefois, pour passer par ces étapes, il est nécessaire de redémarrer l'ordinateur concerné à partir d'un média contenant le client LiteTouch.

Imaginons donc que la machine concernée est contrôlée à distance et que pour couronner le tout vous ne bénéficiez pas d'un environnement compatible PXE. Je considère que vous n'avez pas non plus de solution telles que Landesk, ni SCCM. Le poste est donc physiquement inaccessible, et il n'y a aucune "petite main" sur les lieux pour insérer une clé USB, ou autre CD/DVD…

La 1ère solution à laquelle on pourrait penser serait de faire pointer un raccourci vers le script "\\MDTServer\DeploymentShare\Scripts\litetouch.vbs" en ajoutant le commutateur "/deploymenttype:NEWCOMPUTER" –> Ça commence bien et puis ça plante au moment où la séquence tente de générer les partitions : eh oui, c'est logique puisque le disque concerné est en cours d’utilisation, c'est ballot …

Dans de cas de figure, il m'a semblé alors pertinent d'envisager une méthode consistant à redémarrer le poste à partir d'une image WinPE LiteTouch, préalablement copiée sur un des disques locaux, puis modifier la séquence d'amorçage locale avec de charger ce noyau.

 

II. Détail de la solution proposée

La procédure que je vous propose consiste donc à créer un fichier batch chargé de copier l'une des images WinPE LiteTouch normalement située dans le dossier "\Deploymentshare\Boot" de la structure MDT et configurer un double-amorçage sur la machine concernée.

Créez par exemple, sur la racine de la structure MDT, un fichier "SelfRecover.bat" dans lequel nous allons copier le contenu ci-après.

Vous pouvez indifféremment choisir l'image 32 ou 64 bits en modifiant la variable "ArchiPE". Pensez à vérifier que les fichiers "LiteTouchePE*.wim" et "boot.sdi" soient bien présents sur la ressource partagée MDT. Dans le doute, utilisez préalablement le menu "Update Deployment Share" pour régénérer les images à partir de la console MDT.

@echo off
cd /d %SystemDrive%\
echo ---- Verification du niveau de privileges
whoami /groups | findstr "S-1-16-12288" > nul && set runLevel=admin
if not "%runLevel%"=="admin" goto notAdmin

cls
echo Attention, la reinstallation complete du poste est imminente !...
echo Toutes les donnees non sauvegardees seront perdues.
echo Appuyez sur [Ctrl]+[C] pour stopper ce processus ou
pause
set RecoverPath=LocalRecover
set ShareMDT=\\WDS-MDT\DeploymentShare$
set ArchiPE=x86
rem set ArchiPE=x64
net use %ShareMDT%
if not errorlevel 0 goto notAdmin

echo ---- copie du noyau WinPE %ArchiPE% vers le disque local
mkdir %SystemDrive%\%RecoverPath%
copy %ShareMDT%\Boot\LiteTouchPE_%ArchiPE%.wim %SystemDrive%\%RecoverPath%\Boot.wim
copy %ShareMDT%\Boot\%ArchiPE%\Boot\boot.sdi %SystemDrive%\%RecoverPath%\boot.sdi

echo ---- modification de la sequence d'amorcage locale
bcdedit /create {ramdiskoptions} /d "Reinstallation du systeme"
bcdedit /set {ramdiskoptions} ramdisksdidevice partition=%SystemDrive%
bcdedit /set {ramdiskoptions} ramdisksdipath \%RecoverPath%\boot.sdi

for /f "tokens=2" %%i in ('bcdedit /create /d "Reinstallation du systeme" /application OSLOADER') do set NewGUID=%%i
echo Le nouveau GUID est %NewGUID%
if errorlevel 1 goto erreur

bcdedit /set %NewGUID% device ramdisk=[%SystemDrive%]\%RecoverPath%\boot.wim,{ramdiskoptions}
bcdedit /set %NewGUID% osdevice ramdisk=[%SystemDrive%]\%RecoverPath%\boot.wim,{ramdiskoptions}
bcdedit /set %NewGUID% systemroot \windows
bcdedit /set %NewGUID% winpe yes
bcdedit /set %NewGUID% detecthal yes
bcdedit /displayorder %NewGUID% /addlast
bcdedit /default %NewGUID%
bcdedit /timeout 5
if errorlevel 0 goto suite

:erreur
Echo une erreur est survenue - procedure abandonnee.
pause
goto fin

:notAdmin
echo Privileges insuffisants : Ce script doit etre execute en tant qu'Administrateur et la ressource MDT partagee doit etre accessible.
pause
goto fin

:suite
echo Le système va redemarrer dans 30 secondes
shutdown -r -f -t 30

:fin

Attention, notez que ce script de configuration de l’amorçage requiert les privilèges d'administrateur (test réalisé via la commande "whoami") et que la ressource partagée MDT doit être accessible.

Au prochain redémarrage, l’utilisateur aura encore la possibilité de démarrer son système, durant 5 secondes : Sauf si vous exécutez cette opération à distance et qu'il n'y a personne devant l'ordinateur en question pour modifier cette action 🙂

WPE02-img23
Réinstallation du système proposée au redémarrage

Après, il faudra bien sûr que la séquence d'installation soit automatisée, et sans intervention requise. Sinon, prévoyez d'ajouter un contrôle à distance dans votre client LiteTouch. Au besoin, vous pouvez consulter mon article sur "Installer UltraVNC dans WinPE" 🙂

author avatar
Christophe Mandin Consultant - Formateur indépendant
Consultant/Formateur indépendant en quête de solutions et de moyens alliant efficacement la théorie et la pratique. Fort d’une expérience de plusieurs dizaines années dans l’informatique, j’ai pu apprécier de nombreuses problématiques, développer des qualités rédactionnelles et un esprit de synthèse, tout en me forgeant de solides fondamentaux théoriques, indispensables à toute analyse et mise en œuvre fonctionnelle. Malgré toutes ces années, je ne me lasse pas du plaisir de transmettre mes connaissances en misant sur 3 critères que sont les fondamentaux, la simplicité et le pragmatisme. Bien à vous. Retrouvez-moi sur LinkedIn : Christophe Mandin
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

4 commentaires sur “CustPE : Réaliser un dual boot WinPE LTI/Windows

  • Bonjour,

    super tuto 🙂

    la meme choses existe pour restaurer ( a partir du serveur) une image disk ?

    Merci 🙂

    Répondre
  • Bonjour Lionel,
    Désolé mais je ne suis pas sur de comprendre la question. Ce tuto illustre une technique permettant d’installer une amorce WinPE alternative. La suite, au prochain redémarrage, dépend du noyau que l’on démarre, ici j’ai pris l’exemple d’un noyau LiteTouch, qui peut permettre de restaurer le système selon les séquences disponibles sur le MDT. Il est tout à fait possible de s’inspirer de cette technique pour installer un autre noyau, voir même un WinRE pour solliciter une sauvegarde de type Windows Backup.
    Cordialement,

    Répondre
  • bonjour
    votre SelfRecover.bat de boot est bien
    comment modifier pour trouver le chemin pour qu ‘il boot sur un partition que l’on a creer recovery soit mbr ou uefi

    Répondre
    • Bonjour,
      Je n’ai jamais eu ce genre de besoin (en script) et cela me parait compliqué à automatiser.
      Dans cet exemple, on ajoute une entrée dont on connait l’identifiant. (Typiquement pour une réinstallation à distance, sans présence humaine sur le poste à réinstaller).
      Pour trouver celui d’une partition « recovery » existante, c’est une autre affaire… Il faut probablement chercher du coté de bcdedit afin de lire le BCD existant et trouver le déterminant pour ensuite le mettre à jour (via bcdedit /set …).
      Désolé mais je ne connais aucune solution simple, surtout en batch.
      Bon courage

      Répondre

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.