# Sysprep

Sysprep est l'utilitaire Microsoft de préparation du système en vue du déploiement du système d'exploitation Windows (Windows 8 et autres).
Introduit à l'origine pour être utilisé avec Windows NT 4.0, Sysprep peut préparer un système d'exploitation pour clonage sur disque et éviter des écueils qui surviennent lorsqu'on restaure d'une autre façon une image d'un disque obtenue d'une installation Windows à partir d'autres ordinateurs.

## Écueils pouvant advenir lors du clonage d'un support

* Absence ou remontée invalide des disques durs / SSD ;
* Couche d'abstraction matérielle invalide ;
* Pilotes manquants pour certains périphériques ;
* Noms en double sur le réseau ;
* Problème de reconnaissance du PC dans le domaine Windows : le problème est dû au fait que l'identifiant de sécurité (Windows Security Identifier : SID) est utilisé pour identifier une autre station de travail NT ;
* Perte d'espace de stockage : si l'on met, par exemple, une image de 10 Go sur un support de 40 Go, le nouveau support utilisera seulement 10 Go, perdant 30 Go, à moins d'utiliser l'instruction ExtendOemPartition=1 dans le fichier sysprep.inf ;
* Certains ordinateurs portables équipés de disques SATA ne permettent pas une installation standard de Microsoft Windows XP, ou une installation Sysprep avec Windows XP. Cela est également vrai pour tous les contrôleurs de disques qui n'étaient pas reconnus nativement par Windows XP. Afin de pallier ce problème, il faut ajouter dans Sysprep les paramètres pour prendre en compte le OEMMassStorage.

## Utiliser Sysprep sur Windows NT 4.0 au travers de Windows Server 2003

Pour lancer Sysprep, il faut :
* L'extraire du fichier deploy.cab du CD d'installation Windows ou télécharger la mise à jour la plus récente des outils de déploiement (Deployment tools) chez Microsoft. Les outils de déploiement sont disponibles pour Windows NT 4.0, Windows 2000, Windows XP SP1 et SP2 et Windows Server 2003. Ils sont aussi disponibles en tant qu'éléments de OPK (OEM PreInstallation Kit ou un ADK),
* Créer un répertoire à la racine du système appelé Sysprep, et y copier les fichiers sysprep.exe, setupcl.exe et factory.exe,
* Utiliser "Setup Manager" (setupmgr.exe) pour créer le fichier de réponse de sysprep (généralement appelé "unattended"). Selon la version des outils de déploiement utilisés, le nom par défaut du fichier de réponse sera soit sysprep.inf ou unattended.txt,
* Sauvegarder le fichier sous le nom Sysprep.inf dans le répertoire Sysprep,
On peut alors lancer sysprep.exe manuellement à partir de l'éditeur de lignes de commandes pour utiliser un environnement graphique ("Graphical User Interface" ou GUI) pour configurer les options sysprep. Cela préparera Windows pour la première expérience de lancement "après sortie de la boite" (OOBE).
Dans Windows XP, l'OOBE peut être la fenêtre de bienvenue Windows ou un Mini-Setup.
Le Mini-Setup utilise les entrées fournies dans le fichier sysprep.inf. Windows Welcome utilise les entrées fournies dans winbom.ini en tant que fichier de réponses.
Pour de plus amples informations, il est possible de consulter les fichiers ref.chm et deploy.chm, également inclus dans l'archive deploy.cab ou le téléchargement des outils de déploiement.

## Utiliser Sysprep pour Windows Vista (RC1/2/Final)
### But

* Préparer un ordinateur prêt à la vente (le client n'a plus qu'à rentrer la clé d'activation du produit, etc.)
* Préparer un ordinateur pour en faire l'image (un fichier de réponses peut être utilisé pour automatiser le processus).

### Les bases de l'utilisation

* Lancement :
Le sysprep de Vista est appelé à partir de l'interpréteur de commandes, en tapant la commande :
Cette commande nettoie (argument /generalize) l'ordinateur de ses informations spécifiques et donne à l'utilisateur diverses informations (argument /oobe).
* Spécification d'un fichier de réponses :
Pour automatiser le processus de déploiement, il vaut mieux fournir à sysprep un fichier de réponses. Pour que sysprep l'accepte, il faut spécifier un autre paramètre :

### Création d'un sysprep.xml

Microsoft recommande l'utilisation du logiciel BDD 2007 pour la création d'un tel fichier de réponses. Cependant, il est possible de trouver de nombreux exemples sur le net pour commencer. De façon basique, le fichier unattend.xml utilisé pour installer Windows Vista peut être utilisé comme sysprep.xml.
Il faut faire attention à ce que :
* le xml soit correct et bien tourné (utiliser un éditeur XML est recommandé),
* il n'y aient pas d'éléments vides, ce qui entraînerait des erreurs inutiles.
En fournissant un fichier de réponses (le nom du fichier n'est pas important), le sysprep de Vista copie le fichier vers l'emplacement C:\Windows\Panther\unattend.xml. Ainsi, le fichier original devient secondaire et il est possible de l'effacer si cela est nécessaire. À la place, les changements effectués durant un processus automatisé iront dans le fichier Panther\unattend.xml. Le programme de paramétrage de Vista (Setup) recherche à sept endroits différents le fichier unattend.xml ou autounattend.xml. L'une de ces positions (la quatrième) est l'emplacement Panther\unattend.xml.
Un fichier exemple de sysprep.xml pourrait ressembler à ceci (aucune garantie n'est donnée quant à son fonctionnement) :

### Pièges

* En cas d'oubli d'ajouter /generalize à la commande sysprep, les machines clonées émettront un message d'erreur concernant le chargeur d'amorçage (bootloader), disant que le fichier winload.exe est corrompu ou manquant. Pour résoudre ce problème il existe toutefois une solution : il faut avoir un DVD de Windows Vista et amorcer l'ordinateur sur le DVD, après l'écran du choix de la langue, il ne faut pas choisir "installer" mais la petite option « réparer », vous allez avoir un message disant que Windows détecte une erreur au démarrage, il faut alors choisir la première case proposée parmi les deux, l'ordinateur va redémarrer, l'erreur est corrigée.
* Si le XML n'est pas correct, Vista enverra des messages d'erreur, mais ne dira pas où est exactement le problème. Des éléments vides en XML généreront les mêmes messages d'erreur.
* En cas de mauvaise spécification de la clé de produit dans le fichier de réponses, sysprep provoquera un plantage avec un message d'erreur fatale,
* Il ne faut pas essayer de modifier le contenu de c:\sysprep.xml après que l'image ait été chargée. À la place, il faut appliquer les changements dans c:\windows\panther\unattend.xml, où l'original a été copié,
* dans Windows PE 2.0, pour monter un lecteur réseau sous une lettre, utiliser la syntaxe exacte suivante :
* Sous Windows Vista et Windows 7, la commande sysprep ne peut être exécutée que 3 fois au maximum. Le lancement de la 4e session provoquera un plantage avec un message d'erreur fatale. De plus, si cela vous arrive, vous devez être sûr d'avoir un compte administrateur activé, car avant de planter, sysprep désactive le compte administrateur local par défaut.

### Matériel nécessaire

* Un CD bootable Windows PE 2.0 (pour amorcer l'ordinateur),
* ImageX.exe (pour créer et déployer les images vers d'autres ordinateurs, ce programme ne fonctionne que dans Windows PE),
* Un fichier sysprep.xml échantillon (ou le package de déploiement Microsoft Windows WAIK fournissant un assistant → Windows System Image Manager permettant de générer un tel fichier).