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 :
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.
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.
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 5Ce 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\DMARR~1\OneTime.bat
exitCe 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
exitCe 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).
- Lancement du service AutoExNT
En mode commande, taper : instexnt install
Ensuite, aller dans la console de gestion des services et s'assurer que le service AutoExNT est en démarrage Automatique.- Création d'un compte utilisateur "modèle"
Une fois Windows installé, il faut créer un compte utilisateur local à la machine et lui donner les droits Administrateur afin de pouvoir installer des applications. Fermer ensuite la session Administrateur puis se connecter sous ce compte d'utilisateur.
- Mise à niveau (*)
Mettreà niveau le système d'exploitation par le passage du service pack adéquat, l'installation de la toute dernière version d'Internet Explorer et du DirectX si besoin puis effectuer un Windowsupdate.- Installation des applications (*)
Installer toutes les applications qui seraient nécessaires, ainsi que les mises à jour requises.- Allègement de l'OS
Par suppression des fichiers qui pourraient êtres inutiles :
Dans les propriétés systèmes, décocher la case concernant la restauration automatique. Dans les options d'alimentation, désactiver la mise en veille prolongée...- Configurations spécifiques
Par exemple, désactiver les mises à jour automatiques et interdire l'assistance à distance (dans les Propriétés systèmes).
Ajouter des entrées dans le menu "SendTo" : Dans les options de l'explorateur, sélectionner "Afficher tous les fichiers" puis dans le dossier C:\Documents and Settings\Default User\SendTo ajouter les raccourcis désirés tels que Notepad et Wordpad.- Nettoyage
Dans les options de l'explorateur sélectionner "Afficher tous les fichiers".
Suppression des fichiers temporaires du disque dur (poste de travail, clic-droit sur le disque, propriétés).
Suppression des fichiers temporaires d'Internet Explorer.
Dans le menu Program Files, effacer le dossier de Windowsupdate.
Nettoyer la corbeille.
- Affectation du profil "modèle" à tous les utilisateurs
Fermer la session et re-ouvrir une session en tant qu'administrateur local.
Supprimer les droits d'administrateur local au compte "modèle".
Dans les Propriétés systèmes/Profils des utilisateurs, copier le profil de l'utilisateur "modèle" dans le dossier profil commun à tous les utilisateurs (C:\Documents and Settings\Default User). Le système demande confirmation, confirmer.
Supprimer ensuite le profil de ce compte "modèle" ainsi que le compte lui-même.
- Création du fichier de réponse du mini-setup
En effet, lors du déploiement, chaque machine exécutera de manière automatique un mini-setup permettant de configurer automatiquement certains paramètres de base, ainsi que la génération d'un nouvel identificateur unique.
La création d'un fichier de réponse s'effectue à l'aide de "setupmgr.exe" sur le PC XP Pro. A l'aide d'un interface graphique, il est aisé de répondre aux différentes questions de cet utilitaire qui propose en fin d'exécution d'enregistrer un fichier au nom de sysprep.inf. Ce fichier peut alors être modifié à volonté à l'aide du Notepad pour affiner la configuration.
En voici un exemple :
Fichier Sysprep.inf
;SetupMgrTag
[Unattended]
OemSkipEula=Yes
InstallFilesPath=C:\sysprep\i386[GuiUnattended]
AutoLogon=Yes
AutoLogonCount=1
AdminPassword="MotPasseAdminLocal"
EncryptedAdminPassword=NO
OEMSkipRegional=1
OEMDuplicatorstring="Image PC XP Pro SP1 - Par Autourdupc.com"
TimeZone=105
OemSkipWelcome=1[UserData]
ProductKey=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
FullName="Societe"
OrgName="Nom societe"
ComputerName=*[Display]
BitsPerPel=24
Xresolution=1024
YResolution=768[SetupMgr]
DistFolder=C:\sysprep\i386
DistShare=windist[Identification]
JoinDomain=YOURDOMAINE
DomainAdmin=CompteAdmin
DomainAdminPassword=MotdePasseCompteAdmin[Networking]
InstallDefaultComponents=Yes
Noter les points suivants :
AutoLogon=Yes et AutoLogonCount=1 permet à l'ordinateur de rebooter 1 seule fois automatiquement en mode Administrateur local, ce qui permet de changer le nom de la machine et provoquer le reboot.
CompteAdmin est un compte ayant les droits Administrateur du domaine. Il est préférable d'utiliser un compte spécifique pour le déploiement dont le mot de passe ne sera jamais changé car les informations de mot de passe seront intégrées à demeure dans l'image.
xxxxx-xxxxx-xxxxx-xxxxx-xxxxx correspond à un numéro de série valide.
(*) : ces étapes sont facultatives... Certains préfèreront installer un OS de base et y apporter par la suite les correctifs nécessaires. Il faut aussi tenir compte de la place utilisée par les applications éventuelles qui pourraient alourdir l'image générée par la suite.
Considérer aussi que les applications peuvent évoluer et qu'il est plus facile de réinstaller un OS vierge et d'installer par la suite des applications, plutôt que de refaire une nouvelle image avec de nouvelles applications.
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.
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.
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 :
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 AdapterINTEL 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 AdapterD-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 AdapterKINGSTON Kingston EtheRx PCI 10/100 Fast Ethernet Adapter (KNE110TX)
Linksys LNE 100TX Fast Ethernet AdapterLINKSYS Linksys LNE 100TX Fast Ethernet Adapter REALTEK Realtek RTL8029 PCI Ethernet NIC
Realtek RTL8139/810X Family PCI Fast Ethernet NICSMC 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 redmarrer le PC ou (D) pour revenir au DOS
If errorlevel 1 SET REP=REBOOT
If errorlevel 2 SET REP=DOSIf %REP%==REBOOT call reboot.exe > nul
echo.
echo ATTENTION : pour les commandes MS-DOS, il faut remettre la disquette !
echo.
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.
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 /?)
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é.
(C) Laurent - autourdupc.com - |
Création le 9 avril 2003.
Mise à jour le 28 avril 2003.
|
visites |