PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

CustPE : Maîtrise des images de démarrage LTI/WinPE

mardi 21 juillet 2015 à 10:00

I. Présentation

Vous savez surement que le MDT est une fabuleuse “usine” capable de vous assister pour la plupart de vos taches de déploiement. Au cours de vos expériences, vous aurez certainement remarqué qu’il était possible de générer des images de démarrage WinPE, pour obtenir vos clients LiteTouch mais également pour des noyaux plus génériques.

En général, ce que l’on connait moins, c’est la façon dont MDT construit ces images et la possibilité d’agir sur cette fabrication.

 

II. Principe des “templates”

Pour générer les images de démarrage (boot images), MDT s’appuie sur les éléments du kit ADK (anciennement WAIK) ainsi que sur des fichiers au format .XML servant de modèles de construction.

Le fichier utilisé pour la structure de base d’un noyau WinPE pour client LiteTouch est :
C:\Program Files\Microsoft Deployment Toolkit\Templates\LiteTouchPE.xml

La composition de ce fichier est assez simple à déchiffrer.
En premier lieu, on peut remarquer une section “<!– Settings –>” , définissant l’espace de travail “ScratchSpace” . Notion sur laquelle je reviendrais ultérieurement.

WPE02-img08

LiteTouchPE.xml – Section “Settings”

Puis une section “<!– Components –>” chargée d’énumérer les fonctionnalités et composants à intégrer dans le noyau.

WPE02-img09

LiteTouchPE.xml – Section “Components”

Contrairement aux composants (OC’s : Optional Components  ) qu’il est possible de choisir sous l’onglet “Features“, il s’agit ici des composants impératifs qui seront systématiquement ajoutés aux noyaux.

La section “<!– Driver and packages –>” est vide par défaut, et comme son nom le laisse supposer, elle est destinée à recevoir les pilotes et autre packs linguistiques à ajouter au noyau de base.

WPE02-img10

LiteTouchPE.xml – Section “Driver and packages”

Là encore, il est inutile de modifier cette section du fait qu’il est possible de contrôler cette intégration par le biais d’un profil de sélection (Cette notion sera évoquée ultérieurement).

Vient ensuite la section “<!– Content –>“, composée de 3 sous-ensembles

Les fichiers de “configuration”, parmi lesquels on retrouve “Bootstrap.ini”, “Unattend.xml” et “winpeshl.ini”.

WPE02-img11

LiteTouchPE.xml – Section “Configuration”

Notez que le fichier “Unattend.xml” est lui-même repris selon un modèle dépendant de l’architecture en question x86 ou amd64.

On retrouve dans la partie “<!– Scripts –>“, l’ensemble des scripts du MDT utilisés dans le traitement des séquences de taches, ainsi que des fichiers annexes, xml, png, jpg.

WPE02-img12

LiteTouchPE.xml – Section “Scripts”

Et enfin dans la partie “<!– Tools –>“, on trouve l’ensemble de la boite à outils MDT composée de plusieurs programmes exécutables et autres bibliothèques.

WPE02-img13

LiteTouchPE.xml – Section “Tools”

La dernière section “<!– Exits –>” référence simplement le script chargé de positionner les variables qui seront utilisées par le processus de mise à jour et de fabrication des images WIM et/ou ISO.

WPE02-img14

LiteTouchPE.xml – Section “Exits”

Maintenant, si nous jetons un œil sur le modèle de construction d’un noyau générique, “C:\Program Files\Microsoft Deployment Toolkit\Templates\Generic.xml“, on peut constater que son contenu est particulièrement simple.

WPE02-img15

Generic.xml

Pour rappel, ce genre d’image se contente de charger un noyau minimaliste et nous amène sur une simple invite de commande.

 

III. Personnalisation de WinPE dans la console MDT

Dans la console MDT, les personnalisations de WinPE sont regroupées au niveau de l’onglet “Windows PE” affiché via les propriétés d’un partage de déploiement.

WPE02-img16

Propriétés MDT Deployment Share – Onglet “Windows PE”

A chaque ouverture de cette fenêtre, vous devrez prêter attention à l’architecture “Platform” car les réglages sélectionnés sont indépendants pour chacune des 2 images WinPE.

A. Onglet “General”

Sous l’onglet “General“, vous pouvez opter pour la construction d’images spécialisées pour le déploiement, “Lite Touch Boot Image” et/ou des images simples “Generic Boot Image“. Pour chacune d’entre elle, il est possible d’enchainer l’encapsulation de l’image .WIM au sein d’un fichier .ISO prêt à l’emploi (bootable).

Vous pouvez personnaliser quelques réglages simples au niveau du cadre “Windows PE Customizations

 

B. Onglet “Features”

Revenons à présent sur la faculté de personnalisation des composants optionnels mentionnée précédemment, et exposés sous l’onglet “Features“.
En fait, les binaires correspondants à ces fonctionnalités sont dans les dossiers “WinPE_OCs” situés dans le kit et peuvent être ajoutés unitairement via la commande “DISM /add-Package“, ou plus simplement par le MDT sous cet onglet “Features“.

WPE02-img17

Propriétés MDT Deployment Share – Features (Par défaut)

Cette liste est contenue dans le fichier “C:\Program Files\Microsoft Deployment Toolkit\Bin\FeatureNames.xml”. Vous pouvez toutefois la modifier comme suit (en effectuant une copie de secours préalable) afin d’exclure les fonctionnalités dont vous n’avez pas l’utilité comme par exemple:

<?xml version="1.0" encoding="utf-8" ?>
<features>
  
	<feature id="winpe-mdac">Microsoft Data Access Components (MDAC/ADO) support</feature>
	<feature id="winpe-rndis">Remote Network Driver Interface Specification (RNDIS) support</feature>
	<feature id="winpe-dot3svc">IEEE 802.1x network authentication protocol</feature>
	<feature id="winpe-pppoe">Point-to-Point Protocol over Ethernet (PPPoE) support</feature>
	<feature id="winpe-srt">Windows Recovery Environment</feature>

	<feature id="winpe-fontsupport-ja-jp" option="exclude">Japanese (JA-JP) language pack</feature>
	<feature id="winpe-fontsupport-ko-kr" option="exclude">Korean (KO-KR) language pack</feature>
	<feature id="winpe-fontsupport-zh-cn" option="exclude">Chinese (ZH-CN) language pack</feature>
	<feature id="winpe-fontsupport-zh-hk" option="exclude">Chinese (ZH-HK) language pack</feature>
	<feature id="winpe-fontsupport-zh-tw" option="exclude">Chinese (ZH-TW) language pack</feature>
	<feature id="winpe-fonts-legacy" option="exclude">Legacy fonts</feature>

	<feature id="winpe-legacysetup" option="exclude">Windows setup files (all contents from the sources folder)</feature>
	<feature id="winpe-setup" option="exclude">Setup feature package (parent)</feature>
	<feature id="winpe-setup-client" option="exclude">Client Setup feature package (child)</feature>
	<feature id="winpe-setup-server" option="exclude">Server Setup feature package (child)</feature>
	<feature id="winpe-wds-tools" option="exclude">Windows Deployment Services Tools</feature>

	<feature id="winpe-hta" option="exclude">HTML Application support</feature>
	<feature id="winpe-scripting" option="exclude">Windows Script Host (WSH) support</feature>
	<feature id="winpe-wmi" option="exclude">Windows Management Instrumentation (WMI) support</feature>

	<feature id="winpe-netfx">.NET Framework </feature>
	<feature id="winpe-powershell">Windows PowerShell </feature>
	<feature id="winpe-dismcmdlets" parent="winpe-netfx,winpe-powershell">DISM Cmdlets</feature>
	<feature id="winpe-storagewmi" parent="winpe-netfx,winpe-powershell">Storage Management Cmdlets</feature>
	<feature id="winpe-enhancedstorage" parent="winpe-netfx,winpe-powershell">Enhanced Storage</feature>
	<feature id="winpe-securebootcmdlets" parent="winpe-netfx,winpe-powershell">Secure Boot Cmdlets</feature>

	<feature id="winpe-securestartup" option="exclude">Secure Startup</feature>
	<feature id="winpe-fmapi" option="exclude">File Management API</feature>
	<feature id="winpe-winrecfg" option="exclude">Windows RE Configuration</feature>

	<feature id="dart">Microsoft Diagnostics and Recovery Toolkit 7 (DaRT 7)</feature>
	<feature id="dart8">Microsoft Diagnostics and Recovery Toolkit (DaRT)</feature>

</features>

En redémarrant la console MDT, vous pourrez constater que l’affichage est allégé

WPE02-img18

Propriétés MDT Deployment Share – Features (Allégé)

 

C. Onglet “Driver and patches”

Attardons-nous maintenant sur la gestion des pilotes et des packages au sein des noyaux WinPE. Dans la console MDT, toujours sous l’onglet “Windows PE” et sous l’onglet “Driver and patches“, vous pouvez constater que l’injection de ces éléments peut être réalisée de diverses manières:

WPE02-img19

Propriétés MDT Deployment Share – Drivers and Patches

Comme expliqué dans un précédent article, les pilotes sont “intelligemment” injectés en fonction de leur classe (types).

Par défaut les pilotes et packages sont recherchés dans ce que l’on nomme un “profil de sélection” (selection profile). En fait, il s’agit simplement d’une sélection mémorisée et nommée de toute ou partie d’une arborescence de dossiers du MDT.

Note : Il est conseillé de créer des sous-dossiers pour la gestion de vos différentes ressources MDT, telles que les applications, les séquences de taches, les packages et particulièrement pour différencier les pilotes que vous souhaitez distinguer de la masse. Grâce à cette bonne pratique vous pouvez maitriser la granularité des profils de sélection.

Par défaut, il existe plusieurs profils prédéfinis stockés dans le fichier “SelectionProfiles.xml” situé sous le dossier “Control” du partage de déploiement.

Vous pouvez créer vos propres profils de sélection pour couvrir vos différents besoins. La procédure est plutôt simple, puisqu’il suffit de développer l’arborescence de la console MDT jusqu”à la rubrique “Advanced Configuration … Selection Profiles

WPE02-img20

Selection Profiles

Puis d’utiliser le menu “Action … New  Selection Profile” ou le menu contextuel.

WPE02-img21

New Selection Profile – General

Entrez le nom de votre profil de sélection et une description éventuelle puis cliquez sur “Next“.

WPE02-img22

New Selection Profile – Folders

Cochez simplement le(s) dossier(s) souhaité(s) puis cliquez 2 fois sur “Next” et enfin sur “Finish“.

Une fois le profil créé, vous pourrez l’ajouter facilement à vos fabrications.

Note : Les profils de sélection sont également très pratiques pour la gestion des points de déploiement liés “Linked Deployment Shares” afin de ne pas répliquer inutilement des informations sur vos différents serveurs MDT.