SUPINFO International University

SUPINFO Institute of Information Technology
Laboratoire Microsoft


Tous les Articles du Laboratoire Microsoft

Windows PE 1.2 et les nouveautés de la version 2004/1.5 (compatible Windows XP SP2)
Accueil > Articles > Système
Auteurs 
Guillaume DESFARGES
MGI CONSULTANTS
Architecte Systèmes - MVP


 Tous les articles de cet auteur

3,9/5

Bien


267683
398/1575

3. Paramétrage

3.1. Edition de la base registre pour avoir un clavier français

La toute première chose dont on se rend compte en démarrant WinPE est que vous êtes en clavier QWERTY ce qui peut poser problème à beaucoup de monde surtout si l’on veut gagner du temps. Il faut donc changer le clavier par défaut de WinPE. Pour information, tous les clavier sont intégrés mais il faut en fait indiquer « en dur » quel clavier nous souhaitons utiliser. Pour ce faire, nous allons devoir modifier la base de registre pour ajouter la partie Keyboard Layout dans la base de registre et la valeur nous intéressant, qui est une valeur REG_SZ à l’intérieur de la clé:

HKEY_USERS\.DEFAULT\Keyboard Layout\Preload

Nous devons créer, ainsi, à l’intérieur une valeur “1” de type Reg_SZ contenant la donnée 040C qui correspond au code pays Français.

Nous devons donc générer les fichiers .inf correspondant aux différentes ruches de notre base de registre, qui correspondront ensuite à des fichiers qui seront intégrés à l’intérieur de notre CD WinPE

Nous allons utiliser l’exécutable Mkimg.exe sans spécifier d’image ISO et travailler sur le répertoire temporaire. Dans cette exemple nous considérons que notre CD source est dans le lecteur E et que nous travaillerons dans le répertoire d:\Temppe et enfin que nos programmes WinPE seront dans d:\WinPE.

Voici la commande que nous exécutons :

            D:\WinPE\Mkimg E :  D:\temppe

Nous avons donc des nouveaux fichiers .inf  qui ont été générés à l’intérieur de D:\WinPE mais aussi leurs correspondances à l’intérieur de D:\Temppe\i386\Config

Ici un petit tableau indiquant les correspondances entre vos différents fichiers et les ruches de registre.

Fichier

Ruche

Fichier

HIVECLS.inf

HKCR et HKLM\Software\Classes

%systemroot%\System32\config\Software

HIVEDEF.inf

HKCU

%systemroot%\System32\config\Default

HIVESFT.inf

HKLM\Software

%systemroot%\System32\config\Software

WINPESFT.inf

HKLM\Software

%systemroot%\System32\config\Software

WINPESYS.inf

HKLM\System

%systemroot%\System32\setupreg.hiv

WINPEDEF.inf

HKCU

%systemroot%\System32\config\Default

Dans notre cas %systemroot% est D:\Temppe\i386, dans notre cas les fichiers qui nous intéressent sont Hivedef.inf et Winpedef.inf. En fait ceci s'explique par le fait qu'il n’y ait pas de profil utilisateur dans WinPE, ce qui veut dire que la ruche HKey_Current_User correspond au seul et unique utilisateur de WinPE c’est à dire l’utilisateur « Default User » qui récupère la ruche Hkey_Users\.Default.

Nous allons éditer Hivedef.inf car l’autre .inf n’a pas le même comportement et n’a pas un contenu simple.

Voici en gros le début de notre fichier Hivedef.inf :

[Version]
Signature = "$Windows NT$"
ClassGUID={00000000-0000-0000-0000-000000000000}
DriverVer=07/01/2001,5.1.2600.2180

[AddReg]
HKCU,"AppEvents",,0x00000012
HKCU,"AppEvents\EventLabels",,0x00000012
HKCU,"AppEvents\EventLabels\.Default","",0x00000000,"%DEFAULT_BEEP%"
HKCU,"AppEvents\EventLabels\AppGPFault","",0x00000000,"%PROGRAM_ERROR%"
HKCU,"AppEvents\EventLabels\Close","",0x00000000,"%CLOSE_PROGRAM%"
HKCU,"AppEvents\EventLabels\CriticalBatteryAlarm","",0x00000000,"%CRITICAL_BATTERY_ALARM%"
HKCU,"AppEvents\EventLabels\DeviceConnect","",0x00000000,"%DEVICE_CONNECT%"
HKCU,"AppEvents\EventLabels\DeviceDisconnect","",0x00000000,"%DEVICE_DISCONNECT%"
HKCU,"AppEvents\EventLabels\DeviceFail","",0x00000000,"%DEVICE_FAIL%"
HKCU,"AppEvents\EventLabels\EmptyRecycleBin","",0x00000000,"%EMPTY_RECYCLE_BIN%"
HKCU,"AppEvents\EventLabels\LowBatteryAlarm","",0x00000000,"%LOW_BATTERY_ALARM%"
HKCU,"AppEvents\EventLabels\Maximize","",0x00000000,"%MAXIMIZE%"
HKCU,"AppEvents\EventLabels\MenuCommand","",0x00000000,"%MENU_COMMAND%"
HKCU,"AppEvents\EventLabels\MenuPopup","",0x00000000,"%MENU_POPUP%"
HKCU,"AppEvents\EventLabels\Minimize","",0x00000000,"%MINIMIZE%"
HKCU,"AppEvents\EventLabels\MailBeep","",0x00000000,"%NEW_MAIL_NOTIFICATION%"
HKCU,"AppEvents\EventLabels\Navigating","",0x00000000,"%START_NAVIGATION%"
HKCU,"AppEvents\EventLabels\Open","",0x00000000,"%OPEN_PROGRAM%"
HKCU,"AppEvents\EventLabels\PrintComplete","",0x00000000,"%PRINT_COMPLETE%"
HKCU,"AppEvents\EventLabels\RestoreDown","",0x00000000,"%RESTORE_DOWN%"

……

Cela ne donne pas envie de rentrer dedans mais il faut quand même le faire. La partie [AddReg] est celle qui nous intéresse le plus car par pure coïncidence, c’est celle utilisée pour ajouter les clés dans votre base de registre. En faisant une recherche on se rend compte que la clé Keyboard Layout n’existe pas. Il va donc falloir mettre une ligne pour ajouter la clé Keyboard Layout puis les sous-clés et valeurs voulues.

Il faut donc ajouter les lignes avec comme syntaxe le premier argument de la ruche impactée (HKCU, HKLM, HKCR), puis le nom de la clé, le nom de la valeur (vide si c’est la ligne correspondant à la création de la clé), le type de la valeur et enfin la donnée de la valeur.

Voici donc la clé à rajouter pour créer Keyboard Layout :

HKCU,"Keyboard Layout",,0x00000012

Puis celle pour la sous clé Preload :

HKCU,"Keyboard Layout\Preload",,0x00000012

Puis enfin notre valeur 1 :

HKCU,"Keyboard Layout\PreLoad","1",0x00020000,"0000040C"

Ces trois lignes sont à ajouter dans votre section [AddReg] à l’intérieur du fichier HiveDef.inf. Pour information, voici un petit tableau pour faire les correspondances entre les types de valeurs connues pour la base de registre et le chiffre correspondant dans notre fichier inf. Nous parlerons plus tard de la partie PEBuilder.

Code .inf WinPE

Nom du Type

Code Plugins PeBuilder

0x00000012

Valeur par défaut (pour créer une clé)

0x0

0x00000002

REG_SZ

0x1

0x00020002

REG_EXPAND_SZ

0x2

0x00030003

REG_BINARY

0x3

0x00010003

REG_DWORD

0x4

   

0x5

   

0x6

0x00010002

REG_MULTI_SZ

0x7

Maintenant que nous avons notre fichier .inf modifié, il faut l’injecter dans notre installation WinPE. Pour ce faire, nous allons utiliser un autre utilitaire de WinPE qui est bldhives (textuellement le « constructeur de ruches »). Pas la peine de chercher de la documentation sur google vous n’en trouverez pas, comme beaucoup de choses sur WinPE d’ailleurs :( . Exécutez cette commande à l’intérieur (très important) de votre répertoire D:\WinPE :

Bldhives .\Config.inf

Après quelques secondes, vos fichiers de ruches de base de registre sont créées à l’intérieur de votre répertoire D:\WinPE. Comme vu dans le premier tableau, nous devons récupérer le fichier Default que nous devons copier dans le répertoire d:\Temppe\i386\config pour écraser l’ancien fichier.

Maintenant nous devons recréer notre nouvelle image et cette fois-ci mkimg ne nous aidera pas car il a tendance à effacer le répertoire temporaire avant de la remplir. C’est pour cela que nous allons utiliser le fichier oscdimg en exécutant la commande (toujours depuis d:\Winpe) :

oscdimg.exe -n -betfsboot.com d:\tempPE d:\test.iso

Vous pouvez ensuite graver de nouveau votre image et démarrer sur votre CD et " miracle" votre clavier est en français.

3.2. Réseaux et Winbom.ini

3.2.1. Configuration du réseaux via Winbom.ini

Lors du démarrage de WinPE le fichier startnet.cmd est appelé et celui ci exécute la commande Factory –winpe cette commande configure votre système et entre autres la résolution d’affichage ainsi que la configuration IP, il faut savoir que la configuration ip est difficile à configurer ici car en commande de base vous utilisez netsh qui n’est pas implémenté sous WinPE et même si vous l’implémenteriez, cela poserais un problème car votre connexion réseau n’as pas de nom (comme ci-dessous) et juste un simple ID, ce qui veux dire que la configuration IP doit être effectuée en amont sur votre CD à partir du fichier winbom.ini.

En effet, si vous exécutez Factory le fichier de paramètre winbom.ini est appelé et lu pour effectuer la configuration de votre système, si vous voulez des détails sur tout son contenu je vous conseille de vous reporter au fichier Docs\Winpe.chm de votre CD OPK 1.5 (Docs\ref.chm dans le cas du 1.2), dans notre cas nous regarderons la partie [WinPE.net]. Si celle ci n’existe pas il faudra la créer, à l’intérieur vous avez trois paramètres à mettre :

- IPConfig, ou vous définissez l’adresse IP sous la forme habituelle xxx.xxx.xxx.xxx ou bien la mention DHCP si vous voulez utilisez l’adressage IP dynamique, à ce moment là les paramètres suivants ne sont plus nécessaires.

- SubnetMask, comme son nom l’indique c’est le masque de sous réseau aussi sous la forme xxx.xxx.xxx.xxx

- Gateway, là c’est la passerelle réseau toujours à mettre sous la même forme

Comme vous pouvez vous en rendre compte il n’est pas possible de configurer le DNS ou encore un suffixe DNS pour la connexion dans le cas d’une IP fixe via Winbom.ini, le façon la plus simple serait de passer en DHCP car dans ce cas là les paramétrage de résolution de noms sont bien pris en compte dans le cas contraire il faudra directement accéder à la base de registre via la clé

            HKLM\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters\<ID carte réseau>

Et pour que cette clé existe il faut au préalable démarrer le réseau, ce qui a été fait a été l’utisation de commande Ms-DOS comme par exemple cette commande :

            for /f "tokens=3*" %%A in ('IPCONFIG ^| find /i "Ethernet Adapter"') do @set macartereseau=%%A

      set macartereseau=%macartereseau:~0,-2%

Cette commande via la commande Ipconfig transférera l’ID de la première connexion dans la variable d’environnement macartereseau, attention c’est pour le cas d’un OS Anglais (terme « Ethernet Adapter » plutôt que « carte Ethernet »), dans le cas du français certaines modifications seront nécessaire. Ensuite cela vous permet ensuite d’exécuter les commandes :

            reg add HKLM\System\ControlSet001\Services\Tcpip\Parameters\Interfaces\%macartereseau% /v NameServer /t REG_SZ /d Addr_IP_DNS /f

Pour ajouter vos serveur DNS, Addr_IP_DNS correspond à votre serveur DNS vous pouvez en mettre plusieurs en les séparant par des virgules

reg add HKLM\System\ControlSet001\Services\Tcpip\Parameters\Interfaces\%macartereseau% /v Domain /t REG_SZ /d Suffixe_DNS /f

Pour ajouter le suffixe de connexion DNS pour aider lors de la recherche de nom et éviter de taper systématiquement les nom FQDN de vos machines

Les modifications faites au registre seront prises en compte immédiatement, le seul bémol est que la première commande utilises la commande find.exe qui est une commande 16 Bits et donc demande l’environnement d’exécution 16 bits qui n’est pas implémentée par défaut dans WinPE, nous verrons plus tard comment l’implémenter grâce à l’utilisation des plugins PEBuilder.

Pour continuer sur le winbom.ini vous avez les informations sur chacune des sections de celui ci dans le fichier Ref.chm (OPK 1.2) ou WinPE.CHM (OPK 1.5), ce fichier est surtout utiliser par l’exécutable Factory qui est plutôt fait pour de la configuration post sysprep (mode Factory) plutôt que Winpe, c’est pour cela que même si le fichier d’aide vous indique un grand nombre de section il n’y en a que certaine qui sont prises en compte lors de l’exécution de WinPE (WinBomType=WinPE), voici un tableau extrait du fichier d’aide de la version 1.5 qui vous indique les sections prises n compte par WinPE.

Section

WinPE

Factory

OOBE

[Components]

None

All

All

[ComputerSettings]

DisplayRefresh
DisplayResolution

All

DisplayRefresh
DisplayResolution
ExtendPartition
Hibernation
PowerScheme
SourcePath
TestCert

[DesktopShortcutsFolder]

None

All

None

[DiskConfig]

DiskN
FileSystemN
ForceFormat
PartitionTypeN
QuickFormatN
SetActiveN
SizeN
WipeDisk

None

None

[Factory]

AutoDetectNetwork
Logfile
Logging
LogLevel
LogPerf
NewWinbom

All

OptimizeShell

[Netcards]

All

All

None

[NewConnectionWizard]

None

All

None

[OEMLink]

None

All

None

[OEMRun]

All

All

None

[OEMRunOnce]

All

All

None

[PnPDrivers]

None

All

None

[PnPDriverUpdate]

None

All

UpdateInstalledDrivers

[SetupHomenet]

None

All

None

[Shell]

None

All

BluetoothTaskbarIcon
CustomDefaultThemeFile
DefaultStartPanelOff
DefaultThemesOff
DoDesktopCleanup
MSNExplorer

[StartMenuMFUList]

None

All

None

[UpdateSystem]

All

All

None

[UserAccounts]

None

All

None

[WinPE]

All

None

None

[WinPE.Net]

All

None

None

3.2.2. Ajout de drivers supplémentaires réseaux et contrôleur disques

3.2.2.1. Ajout de drivers réseaux

Nous avons vu comment configurer le réseau sur votre WinPE, nous allons voir le niveau inférieur, c’est à dire l’ajout de drivers pour les cartes réseaux qui ne sont pas dans la HAL de Windows et qui nécessite l’ajout de drivers supplémentaires.

Vous récupérez vos drivers de carte réseaux, soit ils sont sous la forme de plusieurs fichiers, soit sous la forme d’un exécutable, dans le second cas il faut utiliser un logiciel de décompression comme WinRAR pour extraire le fichier.

Ensuite de ces fichiers vous devez récupérer :

-         Tous les fichiers *.inf et vous les copiez dans le répertoire %windir%\inf (d:\Temppe\i386\inf dans nos exemples)

-         Tous les fichiers *.sys, vous les copiez dans le répertoire %winir%\system32\drivers (d:\Temppe\i386\system32\drivers dans nos exemples)

-         Et les autres fichiers (*.dll, *.exe, etc ) dans le répertoire %windir%\system32 (d:\temppe\i386\system32 dans nos exemples)

Il vous suffit ensuite de booter sous Winpe et lors de l’exécution de Factory.exe les nouvelles cartes réseaux seront prises en compte

3.2.2.2. Ajout de drivers de contrôleur de disque

Pour l’ajout de drivers de contrôleur de disques (souvent les contrôleur RAID supplémentaire des carte mère), il y a un peux plus de choses à faire, je vais d’ailleurs paraphraser l’article 319214 de KB Microsoft.

A l’intérieur de votre répertoire de travail WinPE (d:\Temppe dans nos exemples), vous créez un répertoire à l’intérieur de %windir%\System32 avec un nom unique (souvent le nom générique de votre contrôleur)

Ensuite ajoutez à l’intérieur de ce répertoire le contenu des drivers de votre contrôleur (souvent la disquette utilisée dans l’installation avec la touche F6 de Windows XP), et surtout n’oubliez pas le txtsetup.oem.

Vérifiez à l’intérieur du txtsetup.oem  que les sections [Disk] et [Defaults] sont bien remplies avec [Defaults] pointant vers une entrée de la section [SCSI]

Ensuite éditez le fichier Winpeoem.sif à l’intérieur de %windir%\system32 (d:\Temppe\i386\System32 dans nos exemples)

Allez dans la section [OemDriverParams] pour ajouter les valeurs OEMDriverRoot qui correspond au chemin relatif par rapport à l’installation (le laisser vide) et OemDriversDir pour les répertoires à l’intérieur de %windir%\system32, si vous en avez plusieurs vous pouvez les séparer par une virgule.

Ensuite vous pouvez recréer votre image WinPE pour découvrir que vos drivers contrôleur sont bien pris en compte.


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



En Savoir Plus 
Evaluez cet article 


Pour afficher ou poster un commentaire, cliquez sur ce lien : Forum-Microsoft



Retrouvez ci-dessous les autres sections du Laboratoire Microsoft