Ajouter un BAT/CMD à WinPE 2.0

On suppose que vous disposez déjà d'une image Windows PE 2.0 Fr prête à utiliser qui n'a pas été optimisée avec /prep
Lorsque l'on a à utiliser fréquemment Windows PE pour certaines opérations (par exemple du déploiement), il est plus simple d'intégrer à notre image WIM les fichiers qui nous simplifieront la vie..

1) Si ce n'est pas déjà fait, "mounter" l'image de Windows PE 2.0 sur le disque dur en mode lecture/ecriture :
(ouvrir l'invite de commandes des outils Windows PE)

Si il s'agit de créer ou modifier une image ISO, utilisez winpe\ISO\sources\boot.wim


C:\Program Files\Windows AIK\Tools\x86>imagex.exe /mountrw E:\WinPE\sources\boot.wim 1 E:\WinPE\mount

ImageX Tool for Windows
Copyright (C) Microsoft Corp. 1981-2005. All rights reserved.


Mounting (RW): [E:\WinPE\sources\boot.wim, 1] ->
               [E:\WinPE\mount]

Successfully mounted image (RW).

2) Ajouter le fichier  :

Ouvrir Notepad ou tout autre éditeur de texte et créez votre fichier de commandes. Sauvez le dans le répertoire Windows de votre image "mountée". (E:\WinPE\mount\Windows).

Evidemment, si votre fichier était déjà prêt, copiez le simplement au bon endroit !

Si vous utilisez une machine XP équipée de TFTPD32 en guise de serveur, alors le script suivant (XP.CMD) vous aidera surement :
@echo off
REM extraction de l'adresse du serveur DHCP par ipconfig français
FOR /F "TOKENS=2* DELIMS=:" %%A IN ('IPCONFIG /ALL ^| FIND "Serveur DHCP"') DO FOR %%B IN (%%A) DO SET DHCPIP=%%B
REM capture du partage caché xp$
net use y: \\%DHCPIP%\xp$ "" /user:invite
y:unattend.bat

Ce script extrait l'adresse IP du serveur DHCP et s'en sert pour capturer un partage caché (utilisation de "$" en fin de nom de partage), puis lance le fichier unattend.bat présent sur ce partage. Le "serveur" est en mode "partage de fichiers simple" (accès par le compte invité). La ligne FOR /F fini à DHCPIP=%%B, sans saut de ligne.
Je vois d'ici la question que vous vous posez : et le unattended.bat, y'a quoi dedans ?

Allez, on y va :
REM Batch pour préparation de Disque Dur + install XP
@echo off

Rem en cas de clic malencontreux
if NOT %systemdrive% == X: GOTO EOF

net stop vds

Rem pour compatibilité de diskpart avec XP
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\VDS\ALIGNMENT /v LessThan4GB /t REG_DWORD /d 0 /f
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\VDS\ALIGNMENT /v Between4_8GB /t REG_DWORD /d 0 /f
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\VDS\ALIGNMENT /v Between8_32GB /t REG_DWORD /d 0 /f
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\VDS\ALIGNMENT /v GreaterThan32GB /t REG_DWORD /d 0 /f

net start vds

set CaptNetUse=Y:

set DPFile=%CaptNetUse%\diskpart.txt

%CaptNetUse%

diskpart /s %DPFile%

set AnswerFile=%CaptNetUse%\unattend.txt
set SetupFiles=%CaptNetUse%\I386

REM Lancement de l'installation de XP en mode Unattended
%SetupFiles%\winnt32 /syspart:C /tempdrive:C /s:%SetupFiles% /unattend:%AnswerFile% /makelocalsource

REM suite à ajout pilote SATA : copie "m5287.sy_" nécessaire

if %errorlevel% == 0 (
    copy %SetupFiles%\m5287.* C:\$WIN_NT$.~BT\
    exit
    )
Je vous laisse retirer les sauts de ligne en trop sur les REG ADD et l'appel à winnt32...

Le diskpart.txt efface le disque 0 et créé un partition de la totalité de l'espace libre. A vous d'adapter si nécessaire à votre usage :
select disk 0
clean
create partition primary
assign letter=c:
active
list partition
select partition 1
format fs=ntfs label="" quick
exit
Pour ce qui est du Unattended.txt, celui d'un CD XP marche bien.(nommez le unattended.txt et placez le à la racine de votre partage)

3) Optimiser la place occupée par l'image (optionnel, empêche certaines modifications ultérieurement) :

C:\Program Files\Windows AIK\Tools\PETools>peimg /prep E:\WinPE\mount

[bla bla bla]

Pour continuer, entrez « oui ». Toute autre entrée quittera le programme.

Voulez-vous continuer ? yes
[==========================100,0%==========================]
PEIMG a terminé l'opération.

(z'avez vu le "yes" ?    clin oeil   )

4) Dé-mounter et appliquer les modifications (ne surtout pas oublier le  /commit) :

C:\Program Files\Windows AIK\Tools\x86>imagex.exe /unmount E:\WinPE\mount /commit

ImageX Tool for Windows
Copyright (C) Microsoft Corp. 1981-2005. All rights reserved.


Unmounting: [E:\WinPE\mount]...

Successfully unmounted image.

Vos fichiers sont prêts à être utilisés.


Documentation :