Processeurs Intel Skylake sur Windows 7 (MDT)

I. Présentation

 

L’installation de Windows 7 sur les machines équipées de processeur de la famille “Intel Skylake” (aussi connus sous le nom de “6ème génération”), sont particulièrement “subtiles” à installer. En effet, par défaut vous aurez la fâcheuse surprise, à partir d’un DVD “standard”, de perdre votre clavier / souris USB en cours d’installation !… C’est ballot, non ?

Pour pallier ce comportement, Intel fournit une technique de contournement ici.  http://download.intel.com/support/motherboards/desktop/sb/installingwin7fromusbflashdrivesontousb30computers.pdf ou https://downloadmirror.intel.com/25476/eng/win7-usb3.0-creator-readme-v3.pdf

En gros, la technique consiste à injecter les pilotes USB3 dans les images WIM. C’est-à-dire dans le noyau “Boot.wim” d’un WinPE NT6.1 et dans l’image de distribution “Install.wim” via l’outil DISM. (ou plutôt DISM GUI que vous trouverez ici ou là DISM.GUI)

Vous pouvez également consulter l’utilitaire proposé par Intel Installer Windows 7 sur des ordinateurs avec USB 3.0 ainsi que le guide de création d’une image UEFI pour Windows 7.

Je vous propose d’étudier ici ce cas d’école dans un cadre de déploiement via MDT. Encore me direz-vous 🙂 Désolé mais je ne me lasse pas de ce produit gratuit et riche à la fois. J’en profiterais pour y glisser quelques petits rappels subtils sur la gestion des taches conditionnelles.

 

II. Gestion des pilotes via MDT

 

Pour une injection ciblée de ces pilotes via MDT, vous pouvez les ajouter dans un sous-dossier et un profil de sélection spécifiques afin de les ajouter via une tache conditionnelle basée sur le nom du processeur.

Commencez par identifier les machines équipées de processeur “Skylake”, par exemple à partir d’un client LTI ou WinPE. Entrez la commande suivante :

wmic CPU Get name

Puis conservez précieusement ce résultat dans un fichier texte.

Liste des processeurs Skylake : http://ark.intel.com/products/codename/37572/Skylake#@All

Dans la console MDT, sélectionnez le dossier “Out-of-box Drivers” puis créez un nouveau dossier via le menu “Action … New folder“, par exemple ” Intel Skylake”. Sélectionnez ce dossier puis utilisez le menu “Action … Import Drivers” puis choisissez l’emplacement des pilotes “USB3 – Skylake” que vous aurez préalablement téléchargé sur le site Intel ou celui du fabricant des PCs au format .inf.

Pilotes Skylake pour Windows 7 x64

Sélectionnez ensuite la rubrique “Advanced Configuration … Selection Profiles” puis utilisez le menu “Action … New Selection Profile“, que vous nommerez par exemple “USB3 Drivers For Intel Skylake“. Cochez uniquement le dossier correspondant dans “Out-of-box Drivers” puis validez ce nouveau profil de sélection.

Note : Cette méthode n’est applicable qu’à la condition que vous ayez opté pour la gestion sélective des pilotes dans MDT. Autrement dit, les pilotes ne sont pas importés à plat dans la structure “Out-of-box Drivers“. En effet, par défaut, la tache prédéfinie “Inject Drivers” s’appuie sur le profil de sélection “All Drivers” et ce dernier doit être ajusté afin de ne pas inclure le dossier “Skylake” que vous venez de créer.

Editez votre séquence de taches de déploiement Windows 7 puis sous l’onglet “Task sequence“, créez une nouveau tache “Inject Drivers“,  (au même niveau que la tache existante “Inject Drivers” du groupe “Preinstall” d’une séquence de taches standard.) et nommez cette tâche “Inject USB3 Drivers For Intel Skylake

Détails des propriétés de la tache

Si vous n’avez pas opté pour un classement par architecture, conservez l’option “Install only maching drivers…

Cliquez sur l’onglet “Options“, puis sur le bouton “Add” et “If statement“.  Choisissez “Any conditions” puis “OK“.

 

A. Ciblage par processeur

 

Sélectionnez cette nouvelle entrée, puis cliquez de nouveau sur le bouton “Add” et choisissez “Query WMI

Conservez la valeur “WMI Namespace” à “root\cimv2” et entrez la requête suivante dans le champ “WQL Query

SELECT * FROM Win32_Processor WHERE name = 'Intel(R) Core(TM) i3-6300 CPU @ 3.80GHz'

Requete WQL

Le texte situé entre quottes doit bien sûr correspondre aux valeurs que vous avez récoltées dans votre propre environnement.

Réitérez cette opération pour chaque modèle (nécessitant ces pilotes USB3) en prenant soin de sélectionner la ligne “if any conditions are true”. (Ce qui équivaut à un “OU logique”)

Détails (Options) d’une tache conditionnelle

 

Note : Il est également possible d’utiliser une condition simple (sans “bloc if”) en déclarant une requête WMI basée sur des caractères de substitution (Wildcards) – Pour rappel, en langage WQL, le caractère générique est “%”.

SELECT * FROM Win32_Processor WHERE "Name like 'Intel%' and Name like '%-6%'"

 

Mais il est compliqué de cibler des processeurs Skylake en fonction de leur nom. (cf tableau de référence Intel)

B. Ciblage par modèle de PC

 

Je reconnais que le ciblage par processeur peut être fastidieux, surtout si votre parc d’ordinateur est particulièrement hétérogène.

Si vous utilisez déjà une gestion des pilotes par modèle, il suffira de modifier les profils de sélection afin d’y inclure ces pilotes USB3.

Pour rappel, une gestion par modèle s’effectue selon le même principe de taches “Inject Drivers” conditionnelles basées sur la valeur de la variable native %MODEL%. (Parfois combinée avec la variable native %MAKE%)

Même principe pour identifier en amont les valeurs de ces variables, vous pouvez le faire par exemple à partir d’un client LTI ou WinPE, via la commande suivante :

wmic computersystem get manufacturer,model

Puis conservez précieusement ce résultat dans un fichier texte.

 

Précisions sur la gestion de blocs conditionnels

Cet article me donne l’occasion de revenir sur la gestion des conditions au sein des taches MDT. En fait, il est assez fréquent de constater des erreurs relatives aux déclarations de ces blocs de condition  “If statement“.

Lorsque l’on souhaite déclarer plusieurs conditions dans une tache, il faut créer un  bloc de condition  “If statement” qui impose alors un choix entre “All”, “Any” ou “None”. Ce qui peut respectivement se traduire par les tests logiques “AND”,  “OR” et “NOT”. Le comportement par défaut est “All”, ce qui signifie qu’en l’absence d’un bloc “if”, toutes les conditions devront être respectées (True) pour que la tâche s’applique.

Il reste toutefois conseillé de créer des blocs de conditions dès qu’il y en a plusieurs. C’est à cet instant que les choses se compliquent un peu. En effet, l’éditeur perfectible du séquenceur MDT n’est pas très intuitif. Prenons par exemple, un test conditionnel basé sur le tandem “MAKE” et “MODEL”

Mauvaise déclaration des conditions “All”

Cet exemple montre une mauvaise déclaration des conditions mais cela reste fonctionnel du fait que le comportement par défaut est le “ET”

Pour déclarer chaque condition, il faut préalablement sélectionner le bloc “If” correspondant. On obtient alors une présentation “indentée” (décalage) de ces conditions

Déclaration correcte des conditions

On ne peut malheureusement pas décaler les conditions  existantes et il faut donc les supprimer pour les refaire correctement.

Ce qui consolide l’exemple précédent utilisant un bloc conditionnel de type “OU” (Any).

Par exemple, la déclaration suivante ne fonctionne jamais

Mauvaise déclaration des conditions “Any”

Ici, contrairement aux apparences, le bloc “Any” ne contient aucune condition. Les conditions sont considérées au niveau global, dont la logique est le “ET” par défaut. La variable %MODEL% ne pouvant pas prendre plusieurs valeurs sur un même ordinateur, la tache ainsi déclarée, n’est donc jamais exécutée.

Certain constructeurs, tels que Lenovo, utilise des numéros de modèles différents pour des matériels pourtant similaires mais commandés en plusieurs lots (Souvent en fonction du marché client). Il s’agit alors d’un cas typique d’utilisation de conditions imbriquées comme par exemple :

Exemple de déclaration combinée des conditions “All” et “Any”

N’oubliez pas de cliquer sur “Appliquer” et/ou “OK” afin de valider les modifications de vos séquences de taches :-).

Cela étant dit, il s’agit d’un cas d’école, car il est souvent suffisant de ne déclarer que les numéros de modèles, propres à chaque constructeur et donc inutile de les combiner avec l’identifiant de la marque.

Si vous êtes intéressé par une gestion “très élégante” des pilotes dans MDT, je vous invite à vous rendre ici : http://laurierhodes.info/?q=node/68

C’est un peu chaud à mettre en œuvre mais peut être que votre parc justifie une telle gestion 🙂

Quand a la nouvelle génération (7ème du nom) ou Kaby Lake, et l’usage de Windows 7, il y semblerait qu’il faille s’attendre à quelques restrictions (ou limitation  d’usage). J’attendrais donc d’avoir un petit retour d’expérience avant de me prononcer sur le sujet.

 

Bon déploiement à tous

Christophe

 

 

Laisser un commentaire

Votre adresse de messagerie 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.