Windows PE 1.2 et les nouveautés de la version 2004/1.5 (compatible Windows XP SP2)
Accueil > Articles > Système
|
|
Auteurs
|
|
 |
|
 |

242028 398/1575
|
3.3. Scripting
3.3.1. Script inclus par défaut
Par défaut , comme vous pouvez le voir avec le fichier startnet.cmd, seule
les ligne de commande (32 bits) sont incluses dans votre installation WinPE,
ce qui vous permet quand même d’effectuer des opérations simple, comme :
-
Mapper un lecteur réseaux avec net use
-
Partager une ressource avec net share
-
Effectuer des opérations de partitionnement sur les disques locaux avec
Diskpart.exe (création/suppression partition, conversion de disque dynamique,
conversion de système de fichiers, etc…)
-
Faire des opérations de fichiers (rename, copy, xcopy, del, md etc…)
sur des systèmes de fichier FAT/FAT32/NTFS
-
Etc…
Souvent ces tâches sont intéressantes dans le cadre d’une utilisation de support,
mais vous pouvez vouloir utiliser WinPE dans un cadre plus approfondit comme
par exemple les installation de systèmes avec des accès bases de données, ou
encore avec du paramétrage plus « pointu », et souvent il vous faudra
utiliser VBS, ou encore pour des accès au base de données ADO.
3.3.2. Visual Basic Script
WinPE n’a pas le langage vbscript intégré par défauts mais pour cela un script
vbs a été ajouté à l’intérieur du répertoire WinPE, il se nomme BuildOptionalComponents .vbs
qui vous permet d’installer et d’activer le support des fichiers .vbs, éléments
ADO et aussi fichiers .hta, il vous suffit de le lancer avec un CD Source (Windows
XP ou 2003) dans le lecteur pour que les fichiers nécessaire soit créés sur
votre bureau (emplacement par défaut).
Ainsi sur votre bureau vous avec un répertoire Optional Components a été créé,
il vous suffit ensuite de copier son contenu dans le répertoire de travail de
WinPE (D:\Temppe toujours) et ensuite pour activer la gestion des différents
éléments ils vont suffira d’exécuter la commande OC.BAT à l’intérieur
de WinPE pour que par exemple les fichiers *.vbs soient exécutés avec
wscript (par ailleurs cscript marchera aussi), si vous ne voulez pas l’exécuter
à la main vous pouvez ajouter le contenu du fichier OC2.BAT à l’intérieur de
startnet.cmd en enlevant la commande EXIT à la fin pour éviter
de rebooter de façon intempestifs (la fermeture de la fenêtre de commande de
WinPE provoque un reboot immédiat).
Vos script *.vbs à ce moment là marcheront, le problème est qu’aucune commande
WMI ne marchera, en effet le support WMI n’est accessible que dans la version
1.5 (Windows XP SP2) dont nous indiquerons les changements plus loin.
3.3.3. Support pour le scripting 16 bits et les plu gins PEBuilder
Nous l’avons vu avec la partie sur Winbom.ini qu’il est parfois nécessaire
d’utiliser le support pour les applications 16 bits à l’intérieur de WinPE,
par exemple pour le fichier find.exe mais aussi pour pouvoir utiliser des utilitaires
de manipulation de fichier ini, car les fichiers ini sont un reste de Windows
16bit et les appli les manipulant (setini.exe) utilisent aussi le support 16
bits.
Là une grosse difficulté apparaît car Microsoft ne donne aucune information
là dessus mais par ailleurs du côté de chez BartPE et son PEBuilder un plug
in DosPE existe et permet le support 16 Bits, nous allons voir ensemble comment
adapter un plug in PEBuilder pour WinPE.
Téléchargeons le .cab Dospe sur le site de NwdskPE,
prenez la ligne DosPE (4ème en partant du Haut) vous obtenez un simple
fichier .inf (dospe.inf) qui est le fichier de plugins PeBuilder :
; dospe.inf
; PE Builder v3 plug-in INF
file for (16bit) DOS support
; Plugin Created by Erwin
Veermans (http://www.veder.com/nwdskpe/)
[Version]
Signature= "$Windows NT$"
[PEBuilder]
Name="Dos 16-bit support for WinPE"
Enable=1
Help="dospe.htm"
Version=1.0.6
[SourceDisksFiles]
; SystemRoot
_default.pif=1
system.ini=1
win.ini=1
; system32
ansi.sys=2
autoexec.nt=2
avicap.dll=2
avifile.dll=2
config.nt=2
command.com=2
comm.drv=2
commdlg.dll=2
compobj.dll=2
country.sys=2
crtdll.dll=2
ctl3dv2.dll=2
ddeml.dll=2
dosx.exe=2
ega.cpi=2
gdi.exe=2
himem.sys=2
keyboard.drv=2
keyboard.sys=2
krnl386.exe=2
lanman.drv=2
lzexpand.dll=2
mapi.dll=2,,4
mciavi.drv=2
mciseq.drv=2
mciwave.drv=2
mmsystem.dll=2
mouse.drv=2
msacm.dll=2
mscdexnt.exe=2
msvideo.dll=2
netapi.dll=2
ntdos.sys=2
ntdos404.sys=2
ntdos411.sys=2
ntdos412.sys=2
ntdos804.sys=2
ntio.sys=2
ntio404.sys=2
ntio411.sys=2
ntio412.sys=2
ntio804.sys=2
ntvdm.exe=2
ntvdmd.dll=2
ole2.dll=2
ole2disp.dll=2
ole2nls.dll=2
olecli.dll=2
olesvr.dll=2
pmspl.dll=2
progman.exe=2
rasapi16.dll=2,,4
redir.exe=2
shell.dll=2
sound.drv=2
storage.dll=2
system.drv=2
timer.drv=2
toolhelp.dll=2
typelib.dll=2
user.exe=2
vcdex.dll=2,,4
ver.dll=2
vga.drv=2
wfwnet.drv=2
win87em.dll=2
winoldap.mod=2
winsock.dll=2
winspool.exe=2
wow32.dll=2
wowdeb.exe=2
wowexec.exe=2
wowfax.dll=2
wowfaxui.dll=2
; System
avicap.dll=5
avifile.dll=5
commdlg.dll=5
keyboard.drv=5
lzexpand.dll=5
mciavi.drv=5
mciseq.drv=5
mciwave.drv=5
mmsystem.dll=5
mmtask.tsk=5,,4
mouse.drv=5
msvideo.dll=5
olecli.dll=5
olesvr.dll=5
shell.dll=5
sound.drv=5
stdole.tlb=5
system.drv=5
tapi.dll=5,,4
timer.drv=5
ver.dll=5
vga.drv=5
wfwnet.drv=5
[SetupReg.AddReg]
0x0, "ControlSet001\Control\WOW"
0x2, "ControlSet001\Control\WOW",
"cmdline", "%SystemRoot%\system32\ntvdm.exe"
0x1, "ControlSet001\Control\WOW",
"DefaultSeparateVDM", "no"
0x1, "ControlSet001\Control\WOW",
"LPT_timeout", "15"
0x1, "ControlSet001\Control\WOW",
"size", "0"
0x1, "ControlSet001\Control\WOW",
"wowsize", "16"
0x2, "ControlSet001\Control\WOW",
"wowcmdline", "%SystemRoot%\system32\ntvdm.exe -a %SystemRoot%\system32\krnl386"
0x1, "ControlSet001\Control\WOW",
"KnownDLLs", "comm.drv commdlg.dll ctl3dv2.dll ddeml.dll keyboard.drv
lanman.drv mmsystem.dll mouse.drv netapi.dll olecli.dll olesvr.dll pmspl.dll
shell.dll sound.drv system.drv toolhelp.dll vga.drv wfwnet.drv win87em.dll winoldap.mod
winsock.dll winspool.exe wowdeb.exe timer.drv rasapi16.dll compobj.dll storage.dll
ole2.dll ole2disp.dll ole2nls.dll typelib.dll msvideo.dll avifile.dll msacm.dll
mciavi.drv mciseq.drv mciwave.drv progman.exe avicap.dll mapi.dll"
0x4, "ControlSet001\Control\WOW",
"SharedWowTimeout", 0x00000e10
0x3, "ControlSet001\Control\WOW",
"RomFontPointers",\
b0,52,00,c0,b0,4a,00,c0,b0,4e,00,c0,b0,60,00,c0,c0,60,00,c0,c0,70,00,c0
0x1, "ControlSet001\Control\Session
Manager\Environment", "PATHEXT",".COM;.EXE;.BAT;.CMD"
0x0, "ControlSet001\Control\VirtualDeviceDrivers"
0x7, "ControlSet001\Control\VirtualDeviceDrivers",
"VDD", ""
Pour interpréter ce fichier .inf nous allons le regarder section par section,
ainsi nous avons deux sections que nous pouvons ignorer qui sont [Version] et
[PEBuilder], ensuite nous avons la section [SourceDiskFiles] qui correspond
à tout les fichier qu’il faut copier depuis votre source (CD Rom de Windows
ou encore une de ces installations) vers le répertoire de travail WinPE. Cette
section a des sous-sections (précédée d’un point virgule) avec le nom du répertoire
à l’intérieur de %windir% (D:\temppe\i386 dans notre cas), ainsi vous avez un
grand nombre de fichier à copier (les chiffres après le signe égal peuvent être
ignoré) depuis une installation de Windows ou sinon depuis votre CD Windows,
mais attention, dans ce cas là, il faudra utiliser la commande Expand pour extraire
les fichiers compressés (avec l’attribut finissant par un underscore « _ »).
Ce qui vous fait une dizaine de fichiers à copier dans votre répertoire de
travail, ensuite attaquons nous à la section [SetupReg.Addreg] qui, comme son
nom l’indique, est là pour ajouter des entrées dans la base de registre, vous
avez deux solutions soit utiliser la méthode décrite plus haut dans cet article
pour ajouter des paramètres dans la base de registre (ici ce sont des clés à
ajouter à HKLM\System donc dans le fichier WinPESys.inf) soit utiliser les capacités
de chargement de ruche de regedit.
Donc pour cette nouvelle solution, ouvrez regedit, développez HKLM puis faites
Fichier->Charger la ruche

Puis sélectionnez le fichier correspondant à la ruche à éditer, dans notre
cas HKLM\SYSTEM c’est %windir%\i386\setupreg.hiv (voir tableau), puis nommons
cette ruche WinPE

Ainsi vous avez la ruche chargée dans regedit que vous pouvez éditer à votre
guise

Maintenant il vous suffit de rajouter les clés et valeur correspondantes à
l’intérieur de la section [SetupReg.AddReg], celle ci sont sous la forme
Type_Valeur , Nom_de_la_clé , [Nom_de_la_valeur] , [Données_de_la_valeur]
On peux voir les correspondance sur le type de valeur dans le tableau de type
indiqué plus haut dans l’article
Ainsi les deux première lignes
0x0, "ControlSet001\Control\WOW"
0x2, "ControlSet001\Control\WOW", "cmdline",
"%SystemRoot%\system32\ntvdm.exe"
Peuvent être “traduites” par:
Création de la Clé WOW à l’intérieur de ControlSet001\Control
Création de la Valeur Cmdline ayant le type REG_EXPAND_SZ et les données « %SystemRoot%\system32\ntvdm.exe ».
Ainsi votre base de registre sera éditée petit à petit comme ceci :

Pour ensuite fermer l’accès à cette ruche il vous suffit de sélectionner la
ruche ajouté (HKLM\WinPE ici) puis de faire Fichier->Décharger la ruche.

Ainsi vous avez modifié votre Base de registre pour prendre en compte le support
16 bits avec l’aide de fichier de configuration PEBuilder, de la même façon
vous pourrez utiliser d’autre plug in pour par exemple ajouter un navigateur
internet ou un gestionnaire de fichiers graphiques.
Si vous préférez toujours utiliser la méthode de modification des fichiers
de registre .inf, voici les lignes à rajouter dans winpesys.inf
HKLM,"SYSTEM\ControlSet001\Control\WOW",,0x00000012
HKLM,"SYSTEM\ControlSet001\Control\WOW","cmdline",0x00020002,"%SystemRoot%\system32\ntvdm.exe"
HKLM,"SYSTEM\ControlSet001\Control\WOW","DefaultSeparateVDM",0x00000002,"no"
HKLM,"SYSTEM\ControlSet001\Control\WOW","LPT_Timeout",0x00000002,"15"
HKLM,"SYSTEM\ControlSet001\Control\WOW","Size",0x00000002,"no"
HKLM,"SYSTEM\ControlSet001\Control\WOW","wowSize",0x00000002,"16"
HKLM,"SYSTEM\ControlSet001\Control\WOW","wowcmdline",0x00020002,"%SystemRoot%\system32\ntvdm.exe
-a %SystemRoot%\system32\krnl386"
HKLM,"SYSTEM\ControlSet001\Control\WOW","knowDLLs",0x00000002,"comm.drv
commdlg.dll ctl3dv2.dll ddeml.dll keyboard.drv lanman.drv mmsystem.dll mouse.drv
netapi.dll olecli.dll olesvr.dll pmspl.dll shell.dll sound.drv system.drv toolhelp.dll
vga.drv wfwnet.drv win87em.dll winoldap.mod winsock.dll winspool.exe wowdeb.exe
timer.drv rasapi16.dll compobj.dll storage.dll ole2.dll ole2disp.dll ole2nls.dll
typelib.dll msvideo.dll avifile.dll msacm.dll mciavi.drv mciseq.drv mciwave.drv
progman.exe avicap.dll mapi.dll"
HKLM,"SYSTEM\ControlSet001\Control\WOW","SharedWowTimeout",0x00010003,0x00000e10
HKLM,"SYSTEM\ControlSet001\Control\WOW","RomFontPointers",0x00030003,\b0,52,00,c0,b0,4a,00,c0,b0,4e,00,c0,b0,60,00,c0,c0,60,00,c0,c0,70,00,c0
HKLM,"SYSTEM\ControlSet001\Control\Session
Manager\Environment",,0x00000012
HKLM,"SYSTEM\ControlSet001\Control\Session
Manager\Environment","PATHEXT",0x00000002,".COM;.EXE;.BAT;.CMD"
HKLM,"SYSTEM\ControlSet001\Control\VirtualDeviceDrivers",,0x00000012
HKLM,"SYSTEM\ControlSet001\Control\VirtualDeviceDrivers","VDD",0x00010002,""
HKLM,"SYSTEM\ControlSet001\Control\Session
Manager\Environment","ComSpec",0x00020002,"%SystemRoot%\system32\cmd.exe"
HKLM,"SYSTEM\ControlSet001\Control\Session
Manager\Environment","Path",0x00020002,"%SystemRoot%\system32;%SystemRoot%"
HKLM,"SYSTEM\ControlSet001\Control\Session
Manager\Environment","windir",0x00020002,"%SystemRoot%"
3.4. Intégration d’hot fixes à l’intérieur de WinPE
Même si WinPE est un système minimal, il est basé sur le noyau Windows XP et
celui ci doit être patché face à des failles critiques, par exemple un WinPE
1.2 est toujours sensible à des attaques Blaster/Sasser, nous allons donc voir
ensemble comment ajouter nos patchs de sécurité à notre installation de WinPE.
Pour ce faire, vous devez décompresser vos hot fixes dans un répertoire temporaire
ensuite vous ajouter les fichiers :
-
.dll directement dans le répertoire system32
-
.les fichiers de pilotes directement dans le répertoire drivers
Voilà c’est tout ce qu’il y a à faire, attention ces manipulations s’appliquent
à WinPE et absolument pas à WindowsXP, car sinon vous risquerez d’avoir de sacré
surprises à l’installation ou à la restauration de votre dllcache.
3.5. Installation de WinPE sur un disque dur
Depuis le début nous avons vu pour l’utilisation de WinPE dans le cadre d’un
démarrage du système sur le CD ROM, mais WinPE peux parfaitement démarrer sur
un disque dur pour par exemple faire office de partition de « Rescue »,
les possesseur d’IBM T42 pourront se rendre compte que la partition « Acces
IBM » est justement un partition WinPE.
La marche à suivre pour créer une partition WinPE est plutôt simple, vous réalisez
votre CD WinPE et ensuite vous formatez votre future partition avec un OS à
noyau NT (Windows NT4/2000/2003) pour que le MBR pointe bien sur ntldr (donc
pas de partition avec un boot MS DOS)
Ensuite depuis votre CD WinPE vous copiez la totalité du répertoire i386 de
votre CD et vous le renommez en minint.
Vous prenez le fichier i386\ntdetect.com que vous copiez dans la racine
Puis vous copiez le fichier i386\setupldr à la racine et vous le renommez en
ntldr
Votre partition est prête à démarrer sur Windows PE, il vous suffit ensuite
de l’activer si vous avez plusieurs partitions.
Vous pourrez ensuite ajouter les différents logiciels que vous estimez nécessaire
pour votre partition de récupération.
3.6. Utilisation de WinPE dans le cadre d’une installation RIS
Cette partie demande quelques connaissance sur le RIS de 2003 vous avez d’ailleurs
un article là dessus, et je ne vais pas vous ennuyer a paraphraser celui ci,
mais sachez que ce qui vas se passer c’est que nous allons créer une image RIS
de notre CD WinPE et automatiser totalement les écrans « bleus » (fichiers
.OSC) de l’installation RIS pour qu’automatiquement cela soit l’image WinPE
qui descende en mémoire sur l’ordinateur cible.
La première étape est de rajouter l’image d’un Windows XP (SP1 ou SP2 selon
que vous soyez en version 1.2 ou 1.5), pour ce faire vous utilisez la commande
Risetup –add
Vous générez ainsi une image RIS Windows XP, mettez le nom que vous désirez
pour l’image
Puis ouvrez le répertoire i386 de votre Winpe et copier le contenu de celui
ci dans le répertoire i386 nouvellement créé dans votre partition RIS.
Allez dans le répertoire i386\Templates de votre nouvelle image RIS et éditer
le fichier RIStndrd.sif avec le bloc notes, ensuite repéré le paramètre
OSLoadOptions et ajoutez le paramétrage « /minint » en plus des autres.
Voilà vous image RIS WinPE est prête, maintenant nous allons voir comment éditer
les différents écran du RIS pour qu’ils ne soit pas affiché et qu’immédiatement
lors du boot RIS que cela soit WinPE qui s’affiche au lieu des choix en écran
bleu.
En premier lieu vous pouvez supprimer le message « Press F12 to boot »
pour empêcher d’avoir à appuyer sur F12 pour démarrer l’accès RIS, cette possibilité
est intéressante si vous avez la possibilité de démarrer sur la carte réseau
via une touche spécifique du BIOS (F12 aussi souvent) et ainsi éviter d’avoir
la carte réseaux dans votre processus de démarrage. Pour ce faire vous allez
dans \RemoteInstall\OSChooser\i386 pour renommer le fichier Startrom.n12 (n12
comme « no F12 ») en Startrom.com et renommer l’ancien fichier en
Startrom.old .
Ensuite il faut automatiser toute la partie OSChooser, ce qu’il faut faire
c’est rentrer tout les bon paramètres dans vos fichiers .osc et en plus rajouter
le Tag <META ACTION=AUTOENTER> au début de chacun d’eux.
Dans une installation par défaut voici les .OSC à modifier, ils sont dans \RemoteInstall\OsChooser
et ensuite dans les répertoire correspondant à votre langage
-
Welcome.osc : Page d’acceuil
-
Login.osc : Page de connexion à active Directory
-
OSChoice.osc : Page de choix d’images RIS, n’apparaît que si vous
avez plusieurs images RIS
-
Install.osc : Page récapitulative sur la machine à installer
Pour chacun de ces fichiers la balise est à rajouter, si vous n’avez mis que
l’image WinPE dans le RIS le seul fichier à customiser en plus sera Login.osc
où vous devrez rajouter un login et mot de passe pour un utilisateur du domaine.
Dans les partie <INPUT NAME= « USERNAME » et « Password »
vous devrez rajouter dans la balise la propriété VALUE=le login et le mot de
passe correspondant.
Ainsi vous passez chacun des écrans automatiquement et vous arriverez directement
sur WinPE, à partir de là vous pouvez par exemple exécuter diskpart pour partitionner
le disque d’installation ou tout autre disque comme bon vous semble, de plus
vous pourrez créer une petite interface avec des cases à cocher pour générer
une image unnatend avec winnt32.exe la plus exotique possible
Une autre utilisation c’est la possibilité de descendre votre CD WinPE à travers
le réseau, comme cela votre technicien de support n’a plus à se déplacer avec
le CD WinPE de sauvetage créé, il suffit juste de redémarrer la machine à problème
sur le réseau et ensuite effectuer les tâches de support habituelles.
1. Introduction
2. Présentation
2.1. OPK et licence
2.2. ERD Commander et BartPE
2.3. Installation
3. Paramétrage
3.1. Edition de la base de registre pour avoir un clavier français
3.2. Réseaux et Winbom.ini
3.3. Scripting
3.4. Intégration d'hot fixes à l'intérieur de WinPE
3.5. Installation de WinPE sur un disque dur
3.6. Utilisation de WinPE dans le cadre d'une installation RIS
4. Nouveautés de la version du Service Pack 2 (OPK 1.5)
4.1. Support WMI
4.2. Firewall
4.3. Détection Plug'n Play
4.4. Drvinst.exe
5. Conclusion
|
|
 |
Pour afficher ou poster un commentaire, cliquez sur ce lien : Forum-Microsoft
|
|