Gestion d'images avec Sysprep

Avec la sortie de Windows Vista et de Windows Server 2008, les méthodes d’installation changent radicalement en raison de la mise en œuvre d’un nouveau moteur d’installation (setup.exe) qui s’appuie sur des fichiers de réponse eux aussi totalement revisités.

Voir l’article suivant pour plus de détails sur les mécanismes mis en œuvre : Installation automatisée de Windows Vista ou de Windows Server 2008.

Cet article traitera plus particulièrement de la création d’images de référence Windows dédiées au déploiement de systèmes.

Auteur : Guillaume Ducroix de l'équipe Support Windows (Core), Microsoft France


Les basiques

A quoi sert Sysprep ? Il sert principalement à « impersonnaliser » un système d’exploitation Windows, ce qui dans les faits consiste à supprimer toutes les informations systèmes propres à la machine sur laquelle il est exécuté (par exemple, le fameux SID) avant de créer une image du système qui sera utilisée pour des déploiements sur un certain nombre de machines.

Cette étape, sur un système Windows, est obligatoire car elle assure la supportabilité par le Support Microsoft des systèmes déployés par la suite mais permet également d’obtenir une base système « propre » et prête à l’emploi et à la personnalisation sur les machines cibles.

Quelques liens concernant la supportabilité et les scénarii envisageables :

Scénarios d'utilisation de Sysprep ne bénéficiant pas de support techniqueKB828287

Ne pas dupliquer des images de disque des versions installées de WindowsKB162001


Ce qui a changé

Désormais, l’exécutable sysprep.exe (ainsi que les fichiers dont il a besoin) est embarqué avec le système d’exploitation (%WINDIR%\System32\Sysprep).

Il est possible de spécifier un fichier de réponse lors de l’éxécution de sysprep.

Certains arguments de ligne de commande ont eux aussi été modifiés :

  • -activated : cet argument n’existe plus
  • -bsmd : cet argument n’existe plus
  • -clean : cet argument n’existe plus
  • -factory : cet argument n’existe plus
  • -forceshutdown : cet argument n’existe plus
  • -mini : cet argument n’existe plus
  • -nosidgen : cet argument n’existe plus
  • -pnp : cet argument n’existe plus
  • -reseal : cet argument n’existe plus
  • -forceshutdown : est désormais remplacé par /shutdown
  • -noreboot : est désormais remplacé par /quit

 

Et des nouveaux arguments ont été implémentés :

  • /generalize : prépare le système pour une capture. Il supprime également toutes les informations uniques du système.

Le SID est réinitialisé, tous les points de restauration et les journaux d’évènements sont supprimés.
Au prochain démarrage du système, la pass specialize sera executée, un nouvel SID sera créé et l’horloge concernant l’activation sera réinitialisée.

  • /oobe : redémarre le système en mode Windows Welcome.

Windows Welcome permet aux utilisateurs de personalliser leur environement, créer des comptes utilisateurs, nommer l’ordinateur, etc…

  • /unattend: answerfile : appliqué le fichier de réponse spécifié lors du déploiement.

L’utilisation de /generalize /oobe avec Windows Vista et Windows Server 2008 correspond aux arguments -mini -reseal sous Windows XP et Windows Server 2003.


Comment crée une image de référence

La création d’une image de référence tiens plus de l’organisation que de la contrainte technique. En effet, la création d’une image de référence qui s’adapte à l’environnement cible doit prendre en compte un certain nombre de contraintes qui dépendent plus de la façon dont une société est organisée et de la cible à atteindre que de ce que l’on veut y inclure.

  • Dans les grandes lignes, voici les questions qu’il peut être intéressant de se poser :
  • Quels moyens seront mis en œuvre pour assurer le déploiement de l’image ?
  • Quels moyens seront mis en œuvre pour maintenir l’image ?
  • Comment l’image sera-t’elle mise à jour ?
  • Quelle sera la fréquence de mise à jour de l’image ?
  • Veux-t’on disposer d’une image légère (qui ne contient que le « tronc commun » du système, les applications étant distribuées lors du déploiement) ou une image plus lourde contenant tous les logiciels ?
  • Veux-t’on disposer d’une image par modèle de machine ou d’une image « impersonnelle » pouvant être déployée sur tous les modèles d’une entreprise ?
  • Dispose-t’on d’une infrastructure de déploiement (System Management Server ou SCCM) ?
  • Dispose-t’on d’un mécanisme de mise à jour des machines déployées (applications, correctifs, pilotes de périphérique, …) ?
  • Etc…

En fonction des réponses à ces questions, un cahier des charges pourra être établi menant à l’établissement du plan d’action (ou de la procédure) qui décrira les étapes propres à la construction de l’image de référence.

A cet instant, les étapes de la construction de l’image pourront être déroulées :

  1. Installation du système d’exploitation sur une machine témoin
  2. Installation des pilotes de périphériques
  3. Mise à jour du système avec les correctifs de sécurité, les correctifs fonctionnels, etc…
  4. Installation des fonctionnalités souhaitées
  5. Personnalisation du système
  6. Installation des applications et installation des mises à jour associées
  7. Personnalisation des profils utilisateurs
  8. Exécution de sysprep Note : un système Windows destiné à être capturé ne doit pas être joint à un domaine lors de l’exécution de sysprep
  9. Capture du système d’exploitation

Exécuter Sysprep

Après avoir procédé à l’installation de l’environnement de référence, il s’agit désormais d’impersonnaliser le système pour le capturer.

Avant d’exécuter sysprep il peut s’avérer utile de créer un fichier de réponse permettant d’automatiser les étapes de configuration lors du déploiement. On pourra ainsi automatiser l’insertion dans un domaine, spécifier les paramétrages régionaux, etc…

La création d’un fichier de réponse doit être effectuée avec Windows System Image Manager, inclus dans le WAIK.

Une fois créé, ce fichier peut être positionné sur le système à catpurer dans %WINDIR%\System32\Sysprep et l’on peut alors exécuter sysprep :

C:\Windows\System32\Sysprep\Sysprep.exe /oobe /generalize /shutdown /unattend:C:\Windows\System32\Sysprep\sysprep.xml

Note : Contrairement à Windows XP ou Windows Server 2003 pour lesquels sysprep.exe était mis à jour à chaque Service Pack et pouvait être utilisé avec des versions de Windows antérieures, l’exécution de cet outil sur Windows Vista et Windows Server 2008 doit être effectuée avec la version de celle embarquée dans la version de Windows qui doit être capturée.

Quelques liens concernant sysprep :

  • Scénarios d'utilisation de Sysprep ne bénéficiant pas de support technique KB828287
  • Pratiques recommandées pour l'utilisation de Sysprep avec les volumes NTFS KB240126
  • Fonctions Sysprep et problèmes connus KB928386
  • Une description de problèmes connus avec les paramètres FolderLocation du fichier Windows Vista Unattend.xml KB929831

Capturer le système d'exploitation

Une fois sysprep exécuté et la machine éteinte, on peut passer à la phase de capture du système.

Pour ce faire, on peut utiliser ImageX pour créer un fichier au format WIM depuis une instance WinPE 2.x. La commande généralement utilisée est : imagex.exe /capture C:\ \\SERVEUR\PARTAGE\Image.wim "Windows Vista SP1" "Image de référence v1"

Pour optimiser la taille de l’image on peut ajouter l’argument /compress maximum et éventuellement utiliser un fichier de configuration utilisé par ImageX pour exclure des fichiers et des répertoires.

Il est également possible d’utiliser Windows Deployment Services (WDS) qui à l’aide d’une image de capture pourra automatiquement créer l’image au format WIM et éventuellement l’importer dans les images à distribuer via cette technologie.


Déployer l'image de référence

Le déploiement de l’image sur les postes de l’entreprise peut alors être assuré par l’utilisation de WinPE 2.x ou de WDS.

Dans le cas de WinPE, la procédure est la suivante :

1.       Depuis l’instance WinPE, créer et formater la partition cible à l’aide de diskpart (l’exemple suivant créé une partition unique utilisant tout l’espace disponible sur un disque) :

SELECT DISK 0

CLEAN

CREATE PART PRI

ASSIGN LETTER C:

ACTIVE

FORMAT FS=NTFS LABEL="System" QUICK

AUTOMOUNT

EXIT

2.       Pour appliquer l’image capturée, la commande à utiliser est : imagex.exe /apply\\SERVEUR\PARTAGE\Image.wim 1 C:\

Si l’on veut utiliser WDS, il suffit de démarrer en PXE (si les machines supportent cette fonctionnalité) puis de sélectionner l’image qui correspond à la capture effectuée au préalable et injectée dans WDS.


Conclusion

Les exemples décrits ici correspondent à un scenario assez minimaliste de la gestion des images de systèmes car de nombreuses options de personnalisation et de déploiement sont souvent mises en action pour répondre à un besoin ou des contraintes précises.

Pour couvrir ces aspects, d’autres outils peuvent être utilisés comme le Microsoft Deployment Toolkit qui offre une grande souplesse dans la gestion des images et leur déploiement ou encore System Center Configuration Manager qui propose un module de déploiement de systèmes s’intégrant totalement dans une architecture de télédistribution.