Installation automatique Windows 10

Introduction

LES POSTES DOIVENT ÊTRE EN MODE BIOS LEGACY, AVEC BOOT PXE ET WAKEONLAN ACTIVÉ !

En installant les W10 en automatique avec le module se3, toutes les opérations de mise au domaine, clonage, sont automatiques et fonctionnent à tous les coups, y compris à distance et sur des hardware différents !

Prenez 30 minutes chrono à préparer une image de boot W10 avec les bons drivers, et ensuite c’est bon…

Déroulé des opérations

  1. Téléchargement W10 officiel avec l’outil Microsoft (http://go.microsoft.com/fwlink/?LinkId=691209)
  2. Copie des ficihers de l’iso
  3. Mise en place des drivers
  4. Installation w10 en pxe avec mise au domaine et wpkg enchainé
  5. Installation manuelle des logiciels supplémentaires sur le master
  6. Clonage en automatique avec sysprep et retour au domaine

Si vous avez besoin de partitionner différemment le disque, il y quelques lignes à changer dans /var/unattend/install/os/netinst/unattend.xml, c’est parfaitement documenté chez Microsoft : https://technet.microsoft.com/fr-fr/library/dd744365(v=ws.10).aspx

1. Préparation de l’image Windows d’installation

Téléchargement et injection des pilotes

Depuis un poste Windows 10, télécharger l’iso Windows 10 avec l’assistant de création d’iso et la copier sur z:osiso. Lancer (depuis l’interface se3 le script de configuration TODO, ou) en terminal :

install-win-iso.sh nom_de_iso.iso

Une fois l’arborescence de l’iso copiée sur le partage du se3, l’ajout de drivers à l’image se fait depuis un poste W10 64Bits. Aucun outil n’est nécessaire. On ajoute uniquement les drivers indispensables pour l’installation (controleurs disques et réseau).

Attention ceci doit être fait avec un compte admin du se3 (il faut avoir les droits d’écriture sur install). Le compte adminse3 ne fonctionne pas !

1.1. recherche de l’index du winpe

Dism /Get-ImageInfo /ImageFile:z:osWin10sourcesboot.wim
Outil Gestion et maintenance des images de déploiement
Version : 10.0.15063.0
Détails pour l’image : z:osWin10sourcesboot.wim
Index : 1
Nom : Microsoft Windows PE (x64)
Description : Microsoft Windows PE (x64)
Taille : 1 680 843 005 octets
Index : 2
Nom : Microsoft Windows Setup (x64)
Description : Microsoft Windows Setup (x64)
Taille : 1 821 696 047 octets

Dans ce cas deux indexes, si on fait une installation, seul WinPE est indispensable. On choisit donc l’index 1

1.2. montage de l’image

md %temp%wim
Dism /Mount-Image /ImageFile:z:osWin10sourcesboot.wim /index:1 /MountDir:%temp%wim

1.3. liste des drivers

Dism /image:%temp%wim /get-drivers

4 ajout de drivers

Dism /image:%temp%wim /Add-Driver /Driver:c:drivers /Recurse

attention le chemin indiqué ne doit contenir que les drivers nécessaires sinon l’image va grossir très vite. Indiquer juste le dossier 64 bits contenant le .inf ! Répéter l’opération pour tous les drivers utiles (en général Intel et Realtek).

5 Démontage de l’image

Dism /Unmount-Image /MountDir:%temp%wim /Commit

Normalement il n’est pas utile de répéter les opérations pour l’index 2 pour les drivers que vous voulez avoir en phase 2 (windows setup), et donc dans l’installation finale.

Vu que le réseau est accessible ensuite on peut aussi passer directement des drivers depuis un partage réseau en utilisant unattended.xml, ce qui évite de charger l’image wim.

2. Installation automatique des clients Windows 10

2.1. Prérequis

  • sources d’installation Windows installées dans z:osWin10 (Cf. partie 1.)
  • pilotes reseau et disques injectés dans l’image wim (Cf. partie 1.)
  • postes provisionnés dans l’annuaire: le triplet nom;ip;mac est renseigné et la machine appartient à un parc.
  • BIOS configurés pour booter en PXE (pas d’UEFI)

Si le poste n’a pas d’ip réservée, l’installation se fera avec le dernier nom connu.

2.2. Installation

Installation en mode Legacy Bios. Surtout pas d’UEFI !.

le paquet sambaedu-client-windows crée automatiquement la bonne structure de disque

Une seule partition windows + éventuellement la petite partition de boot qui est créée automatiquement par l’installeur. Pour cette partition, 100 Go sont largement suffisants.

Une astuce permet d’éviter la création de la partition de boot de 100Mo créée automatiquement à l’installation de Windows 7. Cela simplifie le clonage et la création d’images. Voici comment procéder.

Avant de lancer l’installation de Windows (par exemple avec gparted inclu dans SystemRescuCD via le boot PXE) :

  • supprimer toute partition du disque,
  • (re)créer une table de partition ms-dos (pas de gpt),
  • créer la partition destinée à recevoir l’OS (100G suffisent),
  • formater cette partition en NTFS.

Ainsi, lors de l’installation, en choisisant cette partition, la partition de boot de 100Mo ne sera pas créée.

Il est possible d’avoir un double-boot Gnu/Linux, dans ce cas vous laisserez un espace vide en partageant le disque dur en deux parties sensiblement égales.

2.3. Activation de Windows 10

  • si le poste a une licence éléctronique ( postes après 2012 ) la licence est automatiquement reconnue par windows 10 sans avoir besoin de rentrer de productkey. Code powershell pour lire le productkey du bios pkb:
$key=(Get-WmiObject -Class SoftwareLicensingService).OA3xOriginalProductKey
  • pour lire le productkey registre pkr on peut utiliser un script powershell ou un utilitaire pkeyui.exe
  • Pour les postes n’ayant pas de licence électronique dans le BIOS, la licence windows 7 de l’étiquette collée sur le poste pke est activable en windows 10.

Remarque importante :

Souvent les postes Windows 7 n’ont pas été activés avec le productkey de l’étiquette, mais avec une licence Volume région, ou autre. Dans ce cas la licence de l’étiquette n’est pas liée au poste, et peut être réutilisée pour n’importe quel autre poste !

En comparant le productkey du registre avec celui de l’étiquette on peut constituer un inventaire des licences consommées et libres.

Il est possible de libérer des licences, par exemple si le poste va être jeté, ou passé en client linux :

slmgr /dlv

lire activationID…

slmgr /upk "activationID"

Pas sûr que cel soit utile…

Ceci veut dire qu’il est possible de constituer une base de pke libres, et de la consommer au fur et à mesure des installations, sans ce soucier de la machine d’origine

procédure

  • Pour les W7 : faire l’inventaire des pk étiquettes (pke), les comparer au pk registre (pkr). Avec un petit cache en papier, on peut masquer le reste de l’étiquette et donc obtenir très simplement le pk etiquette en OCR avec une photo.
  • Si le pke = pkr la licence est bloquée, on la met dans une base avec l’@mac du poste, et on la passera à l’install de w10
  • si pke différent pkr, la licence est libre, on la met de côté pour les postes sans étiquette
  • si pas d’étiquette, on tente de récupérer la licence du bios pkb(poste récent). Si pas ok, on tente avec le pkr et sinon on prendra un pke W7 libre

la procédure d’activation peut se faire en fin d’installation ou de clonage. Pas besoin de compliquer la procédure d’installation !

clonage

Avec W10, l’activation resiste au sysprep et aux réinstallations successives. En revanche si on utilise un pke, il devient définitivement lié à la machine, il faut donc en passer un différent pour chaque poste lors du premier clonage.

3. Intégration au domaine

La procédure “domscripts” issue du paquet se3-domain est obsolète et ne doit plus être utilisé !

Il est nécessaire que le serveur se3 soit au minimum en Wheezy 3.0.5. Le paquet sambaedu-client-windows doit être installé (sources testing pour le moment)

Une recommendation : partez d’un windows10 de base, c’est-à-dire uniquement avec windows10, rien d’autre. Ou refaites une installation propre à l’aide du paquet sambaedu-client-windows, c’est automatisé et cela permet d’avoir un poste compatible à 100 % avec SambaEdu

Note : Pour le moment l’installation automatique ne permet pas de partitionner le disque avec un espace libre pour installer un client-linux

Intégration au domaine d’un poste déjà installé

Il est possible d’intégrer un poste déjà installé. Néanmoins sysprep est assez chatouilleux, et donc le succès n’est pas garanti Il faut que le poste soit à jour.

  • depuis l’interface se3, menu dhcp-> intégrer. Attention, ne fonctionnera que si le poste a déjà l’UAC desactivée.
  • sur le poste, en administrateur local, connecter le lecteur z: à \se3install en s’identifiant en adminse3 et lancer z:osnetinstrejointse3.cmd, ou cliquer directement sur \se3installosnetinstrejointse3.cmd
  • il est possible renommer un poste déjà intégré : menu dhcp->renommer un poste windows.