Déployer Windows XP

en renommant automatiquement les postes.

 

Ce document explique comment déployer des images d'ordinateurs sous XP via un réseau TCP/IP.
Il s'adresse à des utilisateurs ayant de bonnes connaissances d'XP.

 

Plan de ce document :

  1. Présentation
  2. Principe
  3. Mise en oeuvre
    Enumération des outils
    Préparation des outils
    Préparation du "master"
  4. Préparation de la machine pour la duplication
  5. Création de l'image
  6. Préparation au déploiement
    Préparation de la structure du réseau
    Préparation de la machine devant recevoir l'image
  7. Fonctionnement
  8. Les astuces
  9. L'utilisation
  10. Ajout de cartes réseau
  11. Le contenu de la disquette

 

 

 

I) - PRESENTATION

Le déploiement tel qu'il est présenté dans cet article a pour but de répondre à un besoin particulier : déployer Windows XP Pro via un réseau TCP/IP avec renommage automatique des postes. Chaque poste aura sa version de XP activée. Tous les postes sont strictement identiques.

 

 

II) - PRINCIPE

Les images des machines sont stockées sur un partage réseau. L'application de restauration se trouve elle aussi sur un partage réseau. Les machines actuelles comportent une entrée figée dans le BIOS correspondant au "Service TAG" ou encore au numéro de série. C'est cette information qui est utilisée pour nommer la machine.
A l'aide d'une disquette bootable, connexion au réseau, authentification, copie de l'image puis autoconfiguration du poste.

 

 

III) - MISE EN OEUVRE

Le moteur principal de ce déploiement est l'outil Symantec GHOST V7.5, permettant de créer/restaurer des images de machines.
Pour la création de la disquette permettant d'assurer le rappatriement de l'image, voir l'article Déploiement d'images.

La création de l'image s'effectuera à l'aide de l'outil Microsoft Sysprep.exe.

a) Enumération des outils

Un certain nombre d'outils spécifiques doivent être à portée de main :

Une machine en Windows XP Pro

Si le déploiement doit s'effectuer en SP1, cette machine doit être sous SP1. Cette machine, fraichement installée, aura son OS sur une partition FAT32 et ne sera pas entrée sur un domaine. Le compte administrateur local n'aura pas de mot de passe et la machine sera logguée sur ce compte administrateur.
Le système d'exploitation devra avoir été activé auprès de Microsoft.

Une disquette

Sur laquelle mettre les outils une fois préparés.

GHOST

Utilitaire servant à effectuer le clonage. Il est disponible à l'achat sur le site de Symantec.

Les outils de déploiement

Si la version de XP Pro à déployer est une version de base, les outils sont localisés sur le CD-ROM d'origine dans le dossier "\SUPPORT\TOOLS" sous le nom "DEPLOY.CAB".
Si la version de XP Pro à déployer est mise à jour en SP1 avant le déploiement, il faut télécharger les outils pour le SP1 xpsp1deploytools_fr.cab (1,74 MO) chez Microsoft.
Les utilitaires utilisés sont "setupcl.exe", "sysprep.exe" et "setupmgr.exe" avec leurs fichiers associés.

Les outils du support

Ces outils sont localisés sur le CD-ROM d'origine dans le dossier "\SUPPORT\TOOLS" sous le nom "SUPTOOLS.MSI" et "SUPTOOLS.CAB". Seul l'utilitaire "NETDOM.EXE" sera utilisé.

Kixtart

Déja présenté dans d'autres articles (Scripts d'ouverture de session), Kixtart sera utilisé pour récupérer le nom de la machine lors de son installation. Il faut récupérer l'exécutable seul (Kix32.exe).

 

b) Préparation des outils

Les outils nécessaires sont regroupés dans un fichier archive : Tools.zip (570 KO).
Il faut en effet préparer certains outils.
Sur le PC "outil", installer les outils de déploiement puis les outils du support.
Sur la disquette, créer les arborescences complètes "Documents and Settings" et "Windows" telles que représentées. L'arborescence Sysprep sera créée par la suite.

A la racine de la disquette

Copier les fichiers suivants : Kix32.exe, netdom.exe, Domain.reg et Rename.kix dont voici le listing.

Fichier Rename.kix

function WMIQuery($what,$where, optional $computer)
dim $strQuery, $objEnumerator, $value
if not $computer
  $computer="@WKSTA"
endif
$strQuery = "Select $what From $where"
$SystemSet = GetObject("winmgmts:{impersonationLevel=impersonate}!//$computer")
$objEnumerator = $SystemSet.ExecQuery($strQuery)
for each $objInstance in $objEnumerator
     if @Error = 0 and $objInstance <> ""
        $=execute("$$value = $$objInstance.$what")
        $WMIQuery="$value"+"|"+"$WMIQuery"
     endif
next
$WMIQuery=left($WMIQuery,len($WMIQuery)-1)
exit @error
endfunction


$SerNo =WMIQuery("SerialNumber","Win32_BIOS")
if len($SerNo) < 2
   $SerNo=WMIQuery("SerialNumber","Win32_SystemEnclosure")
   if instr($serno,"|")
      for each $return in split($serno,"|")
           if len($return)<10
             $serno=$return
           endif
      next
   endif
endif

$Lign="NETDOM RENAMECOMPUTER " + @WKSTA + " /NewName:"
$Lign=$Lign + $SerNo + " /ud:YOURDOMAINE\CompteAdmin /PasswordD:MotdePasseCompteAdmin /FORCE"
shell $Lign
Sleep 5
Sleep 5

Ce fichier a pour but de lire des informations dans le BIOS de la machine. Dans ce cas précis, la lecture du numéro de série s'effectue dans la variable $serno.
A l'aide de l'utilitaire NETDOM, le script renomme la machine (dont le nom est lu avec la macro kix @WKSTA) avec le nouveau nom contenu dans $serno (plus d'infos avec l'article 298593).

Dans le dossier Démarrage de la disquette

Copier le fichier OneTime.bat dont voici le listing :

Fichier OneTime.bat

call regedit /s c:\Domain.reg
call shutdown -r -f -t 10
del c:\Domain.reg
del C:\DOCUME~1\ADMINI~1\MENUD‚~1\PROGRA~1\D‚MARR~1\OneTime.bat
exit

Ce fichier a pour but de modifier la base de registre afin que l'ordinateur, lors de son ultime reboot, présente par défaut dans la fenêtre d'ouverture de session le domaine dans lequel il est joint. Ensuite, il demande un redémarrage de la machine sous 10 secondes, ceci afin que le reste du script ait le temps de s'exécuter. Pour finir, il efface le fichier REG et s'auto-efface lui-même afin que lors des utilisations ultérieures il ne vienne perturber le fonctionnement.

Fichier Domain.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"AltDefaultDomainName"="YOURDOMAINE"
"DefaultDomainName"="YOURDOMAINE"

Ce fichier permet à l'ordinateur de redémarrer avec par défaut dans la fenêtre de logon le domaine dans lequel la machine devra travailler. Ce nom de domaine est le même que celui qui sera utilisé dans le fichier Sysprep.inf.

Dans le dossier Windows\System32

Copier à partir du kit de ressource technique les fichiers autoexnt.exe, instexnt.exe, servmess.dll et Autoexnt.bat dont voici le listing :

Fichier Autoexnt.bat

cd\
kix32.exe rename.kix
del c:\kix32.exe
del c:\rename.kix
del c:\netdom.exe
del c:\windows\System32\autoexnt.bat
exit

Ce fichier identique à un fichier Batch est exécuté lors du premier redémarrage de la machine avant-même la séquence d'authentification. Ceci permet de lancer Kixtart qui va renommer la machine puis effacer les fichiers devenus inutiles, ainsi que lui-même, pour ne pas perturber les démarrages futurs (plus d'infos avec l'article 243486).

 

c) Préparation du "master"

Le "master" est une machine fraichement installée et configurée suivant les besoins.

Condition importante : Cette machine ne doit pas faire partie d'un domaine, le mot de passe administrateur local doit être laissé à blanc et le système d'exploitation devra avoir été activé auprès de Microsoft. Le système de fichiers devra avoir été laissé en FAT (conseillé mais pas obligatoire).

 

 

IV) - PREPARATION DE LA MACHINE POUR LA DUPLICATION

 

 

V) - CREATION DE L'IMAGE

A l'aide du logiciel Symantec GHOST V7.5, il suffit de créer une image du disque ainsi préparé.
L'idéal est d'être en réseau et d'avoir une disquette bootable prenant en charge le réseau permettant de transferrer l'image sur un serveur.
L'autre possibilité est de monter un second disque formaté dans la machine est d'y transferrer l'image.
Il est fortement conseillé d'utiliser la compression maximum afin de réduire la taille de l'image ainsi créée.

Pour cet exemple, l'image créée se nomme IMGXP.GHO. A titre indicatif, la taille de l'image pour un XP Pro SP1a est d'environ 620 MO.
Le nom ainsi donné à l'image apparaît dans différents fichiers BAT

Une fonctionnalité de la Version 7.5 de GHOST est la possibilité de travailler sur une image ainsi créée. La console GHOST permet d'ouvrir une image comme une archive et d'y travailler sur les composants (ajout/supression de fichiers). La seule restriction : l'image ne doit pas provenir d'un système de fichiers NTFS. C'est la raison pour laquelle il est conseillé de partir d'une machine en système de fichiers FAT32.

 

 

VI) - PREPARATION AU DEPLOIEMENT

Le déploiement s'effectue via le réseau d'entreprise.

a) Préparation de la structure du réseau

Un compte d'installation doit être créé sur le domaine.
Une machine du réseau doit servir de serveur de fichiers. Elle doit avoir un partage en lecture accessible au compte d'installation où sera stockée l'image.
Il devra y avoir un autre partage en lecture/exécution pour ce même compte où sera placé l'application GHOST.exe ainsi qu'un script simple de déploiement.
Dans le script fournit, le partage est rendu "invisible" par l'ajout de la lettre "$" en fin de nom de partage. Cette astuce permet de protéger l'accès au partage aux utilisateurs malveillants.

Pour une question de pratique que nous verrons plus loin, ces 2 partages auront les droits en accès total pour le compte administrateur.

b) Préparation de la machine devant recevoir l'image

Aucune préparation n'est nécessaire. La disquette s'occupe de tout.

 

VII) - FONCTIONNEMENT

La disquette ne doit pas être protégée en écriture, le script pouvant y écrire un fichier si besoin. Le script contenu sur la disquette effectue plusieurs grandes étapes :

 

VIII) - LES ASTUCES

Elles sont nombreuses !

Partages invisibles sur le serveur

Il suffit de terminer le nom du partage par la lettre "$". Le partage devient donc invisible mais toujours accessible si on le nomme directement (par exemple, \\serveur\GHOST$). Noter que P: est utilisé pour GHOST et Q: pour l'image (Cf fichier Autoexec.bat de la disquette).

La détection de l'installation du Ramdrive

La lettre d'installation est incontrôlable, aussi il faut détecter la lettre de lecteur créée pour le Ramdrive. Si c'est "C", ce n'est pas bon. Il faut donc supprimer les éventuelles partitions puis en recréer une au moins.

Tout faire tenir sur une disquette

L'utilisation d'un vieil utilitaire sous DOS : lha.exe. Il permet de créer une archive mais aussi d'en extraire les fichiers. Il est rapide et le taux de compression est correct. La taille de l'exécutable est faible par rapport à ses concurents.

Supprimer les partitions

Après une recherche chez Microsoft, il s'avère qu'en passant un fichier texte à l'utilitaire (hérité de DOS) "debug.exe", il est possible de lui faire exécuter de manière automatique les instructions contenues dans ce fichier. Un tel fichier, donné par MS permet de supprimer toutes les partitions d'un disque.

Recréer une partition

"fdisk.exe" accepte des paramètres pour automatiser la création de partitions. Il faut en effet qu'une partition existe pour que GHOST puisse restaurer une image.

FDISK /mbr

Par expérience, si un système Linux était installé sur la machine, il faut reconstruire le Master Boot Record du disque dur. Je recrée donc ce MBR uniquement dans le cas d'une création de partition.

Détecter la carte réseau

L'utilitaire "Nicdet.exe" permet de détecter la carte réseau en place, ceci à la seule condition que le fichier associé "Nicdet.ini" soit correctement renseigné avec les cartes réseau à détecter.
En effet, chaque carte possède une signature codant le nom du fabricant, le type de carte,... Et c'est le fichier "Nicdet.ini" qui fait la traduction de ce code en un nom reconnu par les pilotes.
Ce fichier est généré par "PowerQuest Drive Image Pro" sous Windows mais en fonction des cartes réseau à prendre en charge, il peut être fortement utile de le corriger à la main avec un éditeur de texte tel que "Notepad.exe".

Le fichier de cet article prend en charge les cartes suivantes

3COM Toutes versions de la serie 3C90x
CNET CNET PRO200WL PCI Fast Ethernet Adapter
CNET PRO200 PCI Fast Ethernet Adapter
INTEL INTEL(R) PRO/100+ PCI Adapter
DAVICOM DAVICOM 9102/A PCI Fast Ethernet Adapter
DAVICOM 1/10/100 PCI Fast Ethernet Adapter
DAVICOM LongRun/10/100 PCI Fast Ethernet Adapter
DAVICOM PCI HomeRun Adapter
DAVICOM PCI LongRun Adapter
DAVICOM PCI Fast Ethernet Based Adapter
DAVICOM 9102A Full Based Switching Adapter
DAVICOM 9102A Half Based Switching Adapter
DAVICOM 10 Base-T PCI Ethernet Adapter
D-LINK D-Link DE-530 PCI Ethernet Adapter
D-Link DE-530+ PCI Ethernet Adapter
D-Link DFE-500TX PCI Fast Ethernet Adapter (Rev B/C)
D-Link DFE-500TX PCI Fast Ethernet Adapter (Rev D)
D-Link DFE-500TX PCI Fast Ethernet Adapter (Rev E)
D-Link DFE-530TX PCI Fast Ethernet Adapter (Rev A)
D-Link DFE-530TX PCI Fast Ethernet Adapter (Rev B)
D-Link DFE-530TX PCI Fast Ethernet Adapter

KINGSTON Kingston EtheRx PCI 10/100 Fast Ethernet Adapter (KNE110TX)
Linksys LNE 100TX Fast Ethernet Adapter
LINKSYS Linksys LNE 100TX Fast Ethernet Adapter
REALTEK Realtek RTL8029 PCI Ethernet NIC
Realtek RTL8139/810X Family PCI Fast Ethernet NIC
SMC SMC EtherEZ (SMC8416 Series)
SMC EtherPower ii 10/100 Ethernet Adapter (SMC9432 Series)
SMC EZ Card 10/100 PCI (SMC1211 Series)
ZONET Realtek RTL8139C PCI Fast Ethernet Adapter


L'authentification

Dans ce cas, elle s'effectue sur un domaine avec le compte "inst". La modification du fichier "Nicdet.ini" dans la section [NETWORK] permettra d'adapter les paramètres.

L'installation de l'image

Le passage en paramètres du nom de l'image et d'un fichier texte de script à l'application GHOST permet une installation automatisée. Ce fichier est stocké sur le serveur avec l'application GHOST. Noter aussi que les fichiers reboot.exe et choice.com présents sur la disquette doivent aussi être copiés sur ce partage.

Listing du fichier GoGHOST.bat

Rem
Rem Partie du script de régénération de l'image
Rem exécuté sur le serveur.
Rem
MOUSE
Rem Explications :
Rem Load:Restauration, src:fichier_image,
Rem dts=1:premier disque, -sure:pas de confirmation
Rem -fx:retour au DOS
Rem
if exist ghost.exe ghost.exe -clone,mode=load,src=Q:\IMGXP.GHO,dst=1 -sure -fx
Rem
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo Phase finale...
echo.
CHOICE /C:RD /N Appuyer sur (R) pour red‚marrer le PC ou (D) pour revenir au DOS
If errorlevel 1 SET REP=REBOOT
If errorlevel 2 SET REP=DOS

If %REP%==REBOOT call reboot.exe > nul

echo.
echo ATTENTION : pour les commandes MS-DOS, il faut remettre la disquette !
echo.

 

 

IX) - L'UTILISATION

Il suffit donc de mettre la disquette dans la machine à installer et de la mettre sous tension. L'authentification sera effectuée avec le compte d'installation défini précédement. Ensuite, un message avertissant que la disquette peut être enlevée annonce le début de la restauration.

Une fois l'image descendue, il suffit de rebooter la machine et de laisser faire.
Après quelques minutes, le poste de travail devrait être fonctionnel.

 

 

X) - AJOUT DE CARTES RESEAU

La partie la plus délicate consiste à ajouter de nouveaux pilotes pour la prise en charge de cartes réseaux supplémentaires. Cette opération s'effectue sur 2 plans : la modification du fichier "Nicdet.ini" à l'aide d'un éditeur de texte tel que "Notepad.exe" et la modification de l'archive "Ebd.lzh" à l'aide de l'utilitaire "lha.exe".

Pour la collecte des pilotes d'une nouvelle carte réseau, il faut télécharger la partie DOS ainsi que la partie Windows 98 (et surtout 98SE si elle existe).
Par analogie à l'existant dans le fichier "Nicdet.ini", il suffit d'jouter les lignes supplémentaires correspondantes...
Pour les pilotes, procéder aussi par analogie avec l'existant en récupérant les fichiers adéquats.

Pour ajouter les fichiers à l'archive, utiliser la commande : lha a Ebd.lzh NomFichier.ext
(Toutes les informations concernant l'utilitaire lha.exe par la commande lha /?)

 

 

XI) - LE CONTENU DE LA DISQUETTE

Le contenu de la disquette est téléchargeable dans un format auto-extractible. Il suffit de double-cliquer sur le fichier téléchargé en ayant pris soins au préalable de mettre une disquette vierge dans le lecteur A: (Télécharger XPdiskboot.exe (1,1 MO)).
Noter que cette image de disquette a été réalisée avec FloppyImage V1.5.2 disponible en téléchargement sur ce site.

Pour des raisons de licenses, les fichiers concernant DOS ne sont pas inclus dans l'image. Pour recréer la disquette fonctionnelle, il suffit de placer la disquette créée précédemment dans une machine Windows 98 puis :

A titre indicatif, voici le listing du contenu de la disquette :

NB :
Le fichier DELPART.txt passé en paramètre à DEBUG.exe permet de supprimer toutes les partitions d'un disque. Il n'est pas utilisé pour ce tutoriel.
Le fichier SCRIPT.TXT utilisé par PQDI n'est pas non-plus utilisé.

 

 

 

Début de page  |  Page d'accueil  |  Me contacter

(C) Laurent - autourdupc.com -

Création le 9 avril 2003.
Mise à jour le 28 avril 2003.