22/12/2024

AstucesDéploiement MDT - WDS

Déploiement d’IE11 sur Windows 7

I. Présentation

Le sujet peut paraître quelque peu poussiéreux, mais lors de mes interventions en clientèle, principalement au sein des petites structures, je suis régulièrement surpris par les techniques de mise à jour du navigateur Internet Explorer 11 sur les postes Windows 7 en particulier. En effet, selon les distributions officielles de Microsoft, Windows 7 intègre la version 8 ou 9 du navigateur, mais pour les versions suivantes, 10 ou 11, il faut procéder à une installation de packages. L'emploi du pluriel est volontaire puisque certains correctifs (KB) constituent des prérequis d'installation, mais je vais y revenir dans cet article. Pour mettre à jour Internet Explorer, il y a plusieurs méthodes telles que  :

  • En ligne, via Windows Update ou WSUS …
  • Via un script chargé d'exécuter les différents packages …
  • Via le kit IEAK (Déconseillé pour un déploiement)
  • Injection au sein de vos images de référence (construites via MDT bien sûr 🙂 )

L'inconvénient majeur de ces techniques, porte sur la nécessité d'un ou plusieurs redémarrages selon la technique employée. Je vous propose donc une solution moins évidente, mais bien plus pratique et efficace en matière de déploiement de masse généralisé.

 

II. Analyse des packages d'installation d'IE11

A. Les prérequis

Pour rappel,  les mises à jour requises pour l'installation d'Internet Explorer 11 sur Windows 7 sp1 x86 ou x64 sont KB2729094, KB2731771, KB2533623, KB2670838, KB2786081 et KB2834140 auxquelles il est possible d'ajouter les mises à jour facultatives suivantes : KB2639308, KB2888049 et KB2882822. (cf http://support.microsoft.com/kb/2847882 ) - Ce qui fait théoriquement 9 mises à jour, mais l'article ne tient pas compte de celles qui ont été remplacées :

  • KB2726535 = Annule et remplace les mises à jour KB2533623 et KB2731771
  • KB2882822 = Annule et remplace la mise à jour KB2639308.

En fin de compte, il nous reste 7 mises à jour (par architecture x86/x64) à installer avant de procéder à l'installation d'Internet Explorer 11 sur  Windows 7  sp1.

 

1. Installer des packages .MSU (méthode traditionnelle)

Ces mises à jour sont délivrées au format .MSU et peuvent donc être installées via la  commande suivante

wusa.exe UpdatePackage.MSU /quiet /norestart /log:Journal.log

Nous n'en aurons pas besoin dans cet exemple, mais pour votre gouverne, la commande suivante permet de désinstaller une mise à jour.

wusa.exe /kb:HotfixId /uninstall /quiet /norestart /log:Journal.log

Vous pouvez déposer tous les fichiers dans des sous-dossiers et inclure leur installation conditionnelle dans un script d'installation d'IE11.

Pour votre gouverne, voici un petit exemple de code Powershell permettant de tester les prérequis, mais ce n'est pas la technique retenue dans cet article.

$NeededHotFixes = @('KB2670838','KB2726535','KB2729094','KB2786081','KB2834140')
Write-Host "Vérification de la présence des correctifs requis pour IE11."
$InstalledHotFixes = (Get-HotFix).HotFixId
$NeededHotFixes | foreach {
 if ($InstalledHotFixes -match $_) {
 Write-Host -fore Green "Correctif $_ installé";
 } else {
 Write-Host -fore Red "Correctif $_ manquant";
 # Ici, on peut procéder à l'installation via WUSA, mais il faudra déclarer une correspondance
 # entre les numéros de KB et le nom des packages .MSU
 }
}

 

B. Le package principal d'installation IE11

Il vous faudra également récupérer le package d'installation autonome, en français disponible ici : http://windows.microsoft.com/en-us/internet-explorer/ie-11-worldwide-languages  et en fonction de votre plateforme :

IE11-Img03
Extrait de la page de téléchargement d'Internet Explorer 11

La commande d'installation silencieuse est :

IE11-Windows6.1-x86-fr-fr.exe /norestart /quiet /update-no

IE11-Windows6.1-x64-fr-fr.exe /norestart /quiet /update-no

En l'absence des prérequis, l'exécution d'un de ces packages renvoie l'erreur "40007 - USER_ERROR_MISSING_REQUIRED_PREREQUISITE"

 

C. Contenu d'un dossier de packaging IE11 autonome

En résumé, voici le contenu exhaustif d'un dossier "Sources" du package IE11 pour Windows 7 nécessaire à une installation autonome.

\Packages\IE11-Win7-sp1\Sources\IE11-Windows6.1-x64-fr-fr.exe
\Packages\IE11-Win7-sp1\Sources\IE11-Windows6.1-x86-fr-fr.exe
\Packages\IE11-Win7-sp1\Sources\Optional\Windows6.1-KB2882822-x64.msu
\Packages\IE11-Win7-sp1\Sources\Optional\Windows6.1-KB2882822-x86.msu
\Packages\IE11-Win7-sp1\Sources\Optional\Windows6.1-KB2888049-x64.msu
\Packages\IE11-Win7-sp1\Sources\Optional\Windows6.1-KB2888049-x86.msu
\Packages\IE11-Win7-sp1\Sources\Optional\Old\Windows6.1-KB2639308-x64.msu
\Packages\IE11-Win7-sp1\Sources\Optional\Old\Windows6.1-KB2639308-x86.msu
\Packages\IE11-Win7-sp1\Sources\Prereq\Windows6.1-KB2670838-x64.msu
\Packages\IE11-Win7-sp1\Sources\Prereq\Windows6.1-KB2670838-x86.msu
\Packages\IE11-Win7-sp1\Sources\Prereq\Windows6.1-KB2726535-x64.msu
\Packages\IE11-Win7-sp1\Sources\Prereq\Windows6.1-KB2726535-x86.msu
\Packages\IE11-Win7-sp1\Sources\Prereq\Windows6.1-KB2729094-v2-x64.msu
\Packages\IE11-Win7-sp1\Sources\Prereq\Windows6.1-KB2729094-v2-x86.msu
\Packages\IE11-Win7-sp1\Sources\Prereq\Windows6.1-KB2786081-x64.msu
\Packages\IE11-Win7-sp1\Sources\Prereq\Windows6.1-KB2786081-x86.msu
\Packages\IE11-Win7-sp1\Sources\Prereq\Windows6.1-KB2834140-v2-x64.msu
\Packages\IE11-Win7-sp1\Sources\Prereq\Windows6.1-KB2834140-v2-x86.msu
\Packages\IE11-Win7-sp1\Sources\Prereq\Old\Windows6.1-KB2533623-x64.msu
\Packages\IE11-Win7-sp1\Sources\Prereq\Old\Windows6.1-KB2533623-x86.msu
\Packages\IE11-Win7-sp1\Sources\Prereq\Old\Windows6.1-KB2731771-x64.msu
\Packages\IE11-Win7-sp1\Sources\Prereq\Old\Windows6.1-KB2731771-x86.msu

Toutefois l'installation des correctifs et/ou de ces packages sous ce format, engendre une erreur "normale" (Code retour "3010 - REBOOT REQUIRED")

IE11-Img04
Finalisation d'installation et activation d'Internet Explorer 11 lors du redémarrage

 

III. "Repackaging IE11" pour un déploiement plus efficace !...

 

A. Réorganisation des sources

Pour ma part, je préfère une autre technique, moins contraignante, qui consiste à extraire les différents packages afin d'en obtenir leurs déclinaisons au format .CAB. puis procéder ensuite à leur injection dans le système via l'outil "DISM"

Pour extraire les MSU, vous pouvez utiliser l'utilitaire 7-Zip ou la commande suivante:

expand -F:* KB.msu <target_dir>

Pour information, seuls les fichiers portant l'extension .CAB nous seront utiles.

Pour extraire le package d'installation d'IE11, il suffit d'ajouter le commutateur "/x" suivi d'un dossier de destination lors du lancement, comme suit :

.\IE11-Windows6.1-<archi>-fr-fr.exe /x:<target_dir>

Pour information, cette première extraction contient des fichiers .MSU (4 par architecture) que nous devons également extraire au format .CAB. Ne conservez que les fichiers .cab correspondants à "IE-Hyphenation-fr-FR" et "IE-Spelling-fr-FR" respectivement identifiés par KB2849697 et KB2849696.

En résumé, on génère la structure de dossiers et fichiers suivante :

│
├───IE11x64_CAB
│ IE-Win7.CAB
│ ielangpack-fr-FR.CAB
│ Windows6.3-KB2849696-x86.cab
│ Windows6.3-KB2849697-x86.cab
│ x86_noKB2849696-KB2849697-amd64.txt
│
├───IE11x86_CAB
│ IE-Win7.CAB
│ ielangpack-fr-FR.CAB
│ Windows6.3-KB2849696-x86.cab
│ Windows6.3-KB2849697-x86.cab
│
├───Optional
│ Windows6.1-KB2882822-x64.cab
│ Windows6.1-KB2882822-x86.cab
│ Windows6.1-KB2888049-x64.cab
│ Windows6.1-KB2888049-x86.cab
│
├───Prereq
│ Windows6.1-KB2670838-x64.cab
│ Windows6.1-KB2670838-x86.cab
│ Windows6.1-KB2726535-x64.cab
│ Windows6.1-KB2726535-x86.cab
│ Windows6.1-KB2729094-v2-x64.cab
│ Windows6.1-KB2729094-v2-x86.cab
│ Windows6.1-KB2786081-x64.cab
│ Windows6.1-KB2786081-x86.cab
│ Windows6.1-KB2834140-v2-x64.cab
│ Windows6.1-KB2834140-v2-x86.cab
│
└───Security
 IE11-Windows6.1-KB3038314-x64.cab
 IE11-Windows6.1-KB3038314-x86.cab
 KB3038314.txt

 

 Note : Les fichiers .txt (ajoutés par mes soins) sont facultatifs et contiennent simplement des indications sur l'origine et l'objectif de certains correctifs.

 

B. Exemple de script d'installation ponctuel

Généralement, pour ce genre de besoin, je privilégie un script en Powershell, mais certains préféreront un autre langage et pour déroger à mes habitudes, je vous propose donc le batch suivant :

"Install_IE11_x86-x64.bat"

@ECHO OFF
CLS
ECHO *********************************************
ECHO Script d'installation d'Internet Explorer 11  
ECHO *********************************************
set OSD=
FOR /f "tokens=2 delims==" %%x in ('wmic os where "version='6.1.7601' and producttype=1" get caption /value') do (set OSD=%%x)
ECHO %OSD% | findstr /C:"Windows 7">nul || (goto notW7)
ECHO Le systeme actuel est "Windows 7 SP1" - On continue.
WHOAMI /groups|findstr S-1-16-12288 > nul
IF %errorlevel%==0 (echo Niveau de privileges : OK) ELSE (goto notAdmin)
IF "%PROCESSOR_ARCHITECTURE%"=="x86" (set CPU=x86) ELSE (set CPU=x64)
ECHO L'architecture CPU est : %CPU%
ECHO Le chemin actuel est : %~dp0
ECHO Installation du prerequis IE11: KB2834140
dism /online /add-package /packagepath:%~dp0Prereq\Windows6.1-KB2834140-v2-%CPU%.cab /quiet /norestart
ECHO Installation du prerequis IE11: KB2670838
dism /online /add-package /packagepath:%~dp0Prereq\Windows6.1-KB2670838-%CPU%.cab /quiet /norestart
ECHO Installation du prerequis IE11: KB2726535
dism /online /add-package /packagepath:%~dp0Prereq\Windows6.1-KB2726535-%CPU%.cab /quiet /norestart
ECHO Installation du prerequis IE11: KB2729094
dism /online /add-package /packagepath:%~dp0Prereq\Windows6.1-KB2729094-v2-%CPU%.cab /quiet /norestart
ECHO Installation du prerequis IE11: KB2786081
dism /online /add-package /packagepath:%~dp0Prereq\Windows6.1-KB2786081-%CPU%.cab /quiet /norestart
ECHO -----------------------------------------
ECHO Installation de la mise a jour facultative IE11: KB2888049
dism /online /add-package /packagepath:%~dp0Optional\Windows6.1-KB2888049-%CPU%.cab /quiet /norestart
ECHO Installation de la mise a jour facultative IE11: KB2882822
dism /online /add-package /packagepath:%~dp0Optional\Windows6.1-KB2882822-%CPU%.cab /quiet /norestart
ECHO -----------------------------------------
ECHO Installation du noyau principal IE 11
dism /online /add-package /packagepath:%~dp0IE11%CPU%_CAB\IE-Win7.cab /quiet /norestart
ECHO Installation du correcteur orthographique (spelling)
dism /online /add-package /packagepath:%~dp0IE11%CPU%_CAB\Windows6.3-KB2849696-x86.cab /quiet /norestart
ECHO Installation de la coupure syllabique (Hyphenation)
dism /online /add-package /packagepath:%~dp0IE11%CPU%_CAB\Windows6.3-KB2849697-x86.cab /quiet /norestart
ECHO -----------------------------------------
ECHO Installation du pack de langue France
dism /online /add-package /packagepath:%~dp0IE11%CPU%_CAB\ielangpack-fr-FR.cab /quiet /norestart
ECHO -----------------------------------------
ECHO Installation de la mise a jour de securite cumulative pour IE11 KB3038314 (14/042015)
dism /online /add-package /packagepath:%~dp0Security\IE11-Windows6.1-KB3038314-%CPU%.cab /quiet /norestart
ECHO *****************************************
ECHO %errorlevel%
ECHO Fin d'installation d'Internet Explorer 11. Le produit sera actif au prochain redemarrage de l'ordinateur.
ECHO Fin du script
GOTO Fin
:notAdmin
ECHO Niveau de privileges insuffisant pour l'installation - Fin du script
GOTO Fin
:notW7
ECHO Ce script est uniquement effectif sur Windows 7 SP1
GOTO Fin
:Fin

 

Déposez ce script à la racine de la structure de dossier présentée précédemment, puis exécutez-le sur les postes cibles (via un compte d'administrateur), en redirigeant la sortie vers un journal (ie "Install_IE11_x86-x64.bat > c:\temp\IE11-inst.log"). A l'issue de ces opérations, Internet Explorer 11 devrait être correctement installé, mais ne sera activé qu'au prochain redémarrage de l'ordinateur.

IE11-Img05
A propos d'IE11 - Mise à jour KB3038314

 

C. Généralisation au sein des images .WIM

Maintenant que nous avons présenté cette technique d'installation "unitaire", je vous propose d'évoquer la généralisation au sein de vos images de référence via le MDT.

Note : Pour ceux qui n'utiliseraient pas le MDT, sachez qu'il est également possible d'injecter IE11 dans une image de distribution Windows 7, via une technique très similaire. Pour cela, il suffit de procéder préalablement à un montage  de l'image .WIM, encore via la commande "DISM", puis d'exécuter ce même batch (sous réserve de remplacer le commutateur "/online" en "/image:CheminDeMontage" afin de pointer vers l'image à modifier)

 

1. Intégration d'IE11 via le MDT

En raison du "repackaging" proposé précédemment, nous disposons déjà de la matière première pour effectuer cette opération.

Pour cela, au niveau de la console MDT "Deployment Workbench", après vous être connecté au partage de déploiement désiré, rendez-vous sous la rubrique "Packages", puis créer un nouveau dossier, comme par exemple "W7-Patches". Utilisez ensuite le menu contextuel "Import OS Packages"

IE11-Img06
MDT : Importation des packages

Sélectionnez le dossier dans lequel nous avons précédemment extrait les fichiers .CAB puis cliquez sur "Next"

Note : Il y aura quelques erreurs sur des packages tels que IE_SUPPORT… qui ne sont pas considérés comme des mises à jour. De plus, je vous conseille de créer des sous-dossiers par architecture afin de faciliter la réalisation de profils de sélection adaptés.

Une fois l'importation terminée, vous devriez obtenir quelque chose du genre :

MDT : Vue d'ensemble des packages nécessaires à l'installation d'IE11
MDT : Vue d'ensemble des packages nécessaires à l'installation d'IE11

Dans une séquence de tache standard, MDT installe automatiquement toutes les mises à jour contenues dans le dossier "Packages". Cf "Preinstall … Apply Patches"

MDT : Tache d'installation des packages
MDT : Tache d'installation des packages

Facultatif : A des fins d'optimisation, je vous conseille de définir un nouveau profil "Selection Profile" afin de référencer un sous-dossier contenant uniquement les mises à jour en fonction du système d'exploitation installé.

Pour cela, dans la console MDT, sélectionnez le nœud "Advanced configuration … Selection Profiles" puis le menu "Action … New Selection Profile" ou le menu contextuel. Entrez un nom désignant ce profil selon l'organisation choisie, puis sélectionnez le(s) sous -dossier(s) correspondants.

MDT : Création d'un profil de sélection personnalisé (custom) pour affiner l'installation des packages
MDT : Création d'un profil de sélection personnalisé (custom) pour affiner l'installation des packages

Cliquez 2 fois sur "Next" puis "Finish" pour créer le profil de sélection.

Une fois le(s) profil(s) de sélection créé(s), vous n'aurez plus qu'à l'associer dans la séquence de tache, en lieu et place de la valeur "All Packages" mentionnée précédemment.

Si vous utilisez MDT2013, c'est terminé. En revanche, si vous utilisez une version antérieure telle que MDT2012up1, et que vous avez intégré IE11 dans vos images de référence, vous devrez procéder à une modification (ou vérification) du fichier de réponse "unattend.xml", de la séquence de tache. Dans le cas contraire, l'erreur "Windows could not parse or process unattend answer file for pass [specialize]. A component or setting specified in the answer file does not exist." peut apparaitre lors du déploiement.

Pour éviter cela, au niveau de la console MDT "Deployment Workbench", sélectionnez la (ou les) séquence de tache d'installation "Windows 7" puis cliquez sur le menu contextuel "Propriétés". Sélectionnez l'onglet "OS Info" puis  cliquez sur le bouton "Edit Unattend.xml".

MDT : Modification du fichier de réponse
MDT : Modification du fichier de réponse

Si le fichier catalogue n'est pas à jour, celui-ci est régénéré par le MDT et l'opération peut être relativement longue. Ensuite, l'assistant de gestion d'image Windows (WSIM) s'ouvre sur l'image en question avec le fichier de réponse correspondant.

En fonction de l'architecture, sélectionnez le composant "x86…" ou "amd64_Microsoft-Windows-IE-InternetExplorer_neutral"  situé sous le nœud "4 specialize node", puis dans la zone de propriétés, effectuez un clic droit sur "IEWelcomeMsg" puis "Annuler la modification".

WSIM : Modification du composant Internet Explorer défini fichier unattend.xml

Supprimer également la directive "ShowMenuBar" = "true" si elle existe.

Remarque : La rubrique "Packages" du fichier de réponse n'est pas utile dans le cadre su MDT, à moins que ces mises à jour soient situées dans un autre dossier (déconseillé)

Enregistrez le fichier de réponse modifié puis quittez WSIM.

Cette procédure est un peu complexe, et en tant qu'expert 😉 , il est également possible de modifier directement le fichier "Unattend.xml" en commentant la balise. Autrement dit, ouvrez le fichier avec un bloc-notes puis remplacer la ligne "<IEWelcomeMsg>false</IEWelcomeMsg>" par "<!-- <IEWelcomeMsg>false</IEWelcomeMsg> -->".

A titre d'information, sur MDT 2013, le modèle de fichier de réponse contient ceci :

Extrait du fichier unattend.xml (MDT2013) - Détails du composant Internet Explorer
Extrait du fichier unattend.xml (MDT2013) - Détails du composant Internet Explorer

L'action est à réitérer pour chacune de vos séquences de tache concernées et par architecture. Une fois encore, cette opération est inutile si vous utilisez déjà MDT2013

Pour aller plus loin, dans la personnalisation d'IE11, téléchargez le kit IEAK11, disponible ici :  https://www.microsoft.com/en-us/download/details.aspx?id=40903

IEAK11 - Internet Explorer Administration Kit

Précision : L'usage d'IEAK engendre un nouveau package MSI ou EXE à partir des sources initiales, mais reste plus adapté à des personnalisations d'Internet Explorer qu'à des déploiements.

 

Bon déploiement à tous

 

author avatar
Christophe Mandin Consultant - Formateur indépendant
Consultant/Formateur indépendant en quête de solutions et de moyens alliant efficacement la théorie et la pratique. Fort d’une expérience de plusieurs dizaines années dans l’informatique, j’ai pu apprécier de nombreuses problématiques, développer des qualités rédactionnelles et un esprit de synthèse, tout en me forgeant de solides fondamentaux théoriques, indispensables à toute analyse et mise en œuvre fonctionnelle. Malgré toutes ces années, je ne me lasse pas du plaisir de transmettre mes connaissances en misant sur 3 critères que sont les fondamentaux, la simplicité et le pragmatisme. Bien à vous. Retrouvez-moi sur LinkedIn : Christophe Mandin
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

2 commentaires sur “Déploiement d’IE11 sur Windows 7

  • Bonjour Christophe,
    Excellent article, une habitude appeciable sur ce site.

    J’ai testé la procédure d’intégration d’IE11-x64-FR sur
    Windows 7 Professionnel x64 version 6.1 (numéro 7601: Service Pack1),
    via le MDT 2013 (ajout des fichiers CAB dans le dossier Packages ainsi que la gestion par Selection Profils dans la Task Sequence en Preinstall).

    IE11 est bien déployé, cependant, l’UI (menus et options) sont en anglais,
    ce qui n’est pas le cas du systeme qui est configuré en Francais.
    + Region et Langue = Francais (France)
    + Claviers et langues = Francais (France) – Francais

    Aurais-tu rencontré une situation similaire?

    Répondre
    • Bonjour,
      Je n’ai pas souvenir d’un tel symptome. Je suppose qu’il y a bien eu un redémarrage avant le lancement d’IE ?
      Peut-être est-ce lié à l’image WIM (est-elle « localisée » en FR ?)
      Est-ce que le module linguistique apparait dans les mises à jour installées ?
      Peut-être essayer de forcer des variables telles que UILanguage=fr-FR dans le CustomSettings.ini
      Est-ce qu’il y a des erreurs ou avertissements dans le fichier c:\windows\temp\deploymentLogs\ZTIPatches.log ?
      Est-que la methode du script donne le même symptome ? (ou l’ajout du pack de langue via dism en tant qu’application)
      Bon courage

      Répondre

Laisser un commentaire

Votre adresse e-mail 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.