NewSID v4.10

Par Mark Russinovich et Bryce Cogswell

Paru le 01 novembre 2006

IMPORTANT :

En ce qui concerne les SID, Microsoft n'assure pas la prise en charge des images préparées avec NewSID ; nous ne prenons en charge que les images préparées avec Sysprep. Microsoft n'a pas testé toutes les options de clonage de NewSID

Pour plus d'informations sur la stratégie officielle de Microsoft, consulter l'article de la base de connaissances suivant :

 Haut de page

Introduction

De nombreuses entreprises utilisent le clonage d'image de disque pour effectuer des déploiements en masse de Windows. Cette technique consiste à copier les disques d'un ordinateur Windows entièrement installé et configuré sur les lecteurs d'autres ordinateurs. Ces ordinateurs semblent alors être passés par le même processus d'installation et peuvent être utilisés immédiatement.

Cette méthode de déploiement permet effectivement de gagner beaucoup de temps mais comporte un problème majeur : chaque système cloné possède un SID (Computer Security Identifier ou Identificateur de sécurité informatique) identique. Ceci compromet la sécurité dans les environnements de groupes de travail, et la sécurité des supports amovibles peut également être compromise dans les réseaux comprenant plusieurs SID identiques.

La demande de la communauté Windows a poussé plusieurs entreprises à développer des programmes qui peuvent modifier le SID d'un ordinateur après clonage d'un système. Toutefois, les logiciels SID Changer et Ghost Walker de Symantec sont uniquement vendus en tant que produits haut de gamme. En outre, ils s'exécutent tous deux à partir d'une invite de commande DOS (le changeur d'Altiris est identique à NewSID).

NewSID est un programme qui modifie le SID d'un ordinateur. Il est gratuit et est un programme Win32, ce qui signifie qu'il peut être exécuté facilement sur des systèmes précédemment clonés. NewSID fonctionne sur Windows NT 4, Windows 2000, Windows XP et Windows .NET Server.

Nous vous recommandons de lire la totalité de cet article avant d'utiliser ce programme.

Informations sur les versions

  • La version 4.0 introduit la prise en charge de Windows XP et .NET Server et une interface de style Assistant, vous permet de spécifier le SID que vous souhaitez appliquer et de compacter le Registre, et vous donne la possibilité de renommer un ordinateur (ce qui a pour effet de modifier les noms Netbios et DNS).
  • La version 3.02 corrige un bogue qui empêchait NewSid de copier correctement les valeurs par défaut de type non valide lorsqu'il renomme un ancien SID en nouveau SID. NT utilise en fait ces valeurs non valides à certains moments dans le SAM. Ce bogue se manifestait par des messages d'erreur de refus d’accès lorsque les informations de compte étaient mises à jour par un utilisateur autorisé.
  • La version 3.01 ajoute une solution de contournement pour une clé de Registre inaccessible créée par Microsoft Transaction Server. Sans cette solution, NewSID se fermerait prématurément.
  • La version 3.0 introduit une fonctionnalité de synchronisation de SID qui oblige NewSID à obtenir un SID à appliquer auprès d'un autre ordinateur.
  • La version 2.0 possède une option de mode automatisé, et vous permet également de modifier le nom de l'ordinateur.
  • La version 1.2 corrige un bogue introduit dans la version 1.1, où certains descripteurs de sécurité de système de fichiers n'étaient pas mis à jour.
  • La version 1.1 corrige un bogue relativement mineur qui affectait seulement certaines installations. Elle modifie également les SID associés aux paramètres d'autorisation des partages de fichiers et imprimantes.

 Haut de page

Clonage et méthodes de déploiement alternatives

L'un des moyens les plus utilisés par les entreprises pour effectuer un déploiement Windows de masse (généralement des centaines d'ordinateurs) est celui qui utilise la technique de clonage de disque. Un administrateur système installe le système d'exploitation de base et les programmes complémentaires utilisés dans l'entreprise sur un ordinateur modèle. Une fois l'ordinateur configuré pour un fonctionnement dans le réseau de l'entreprise, des outils de disque ou de duplication de système automatisés (tels que Ghost de SymantecImage Drive de PowerQuest et RapiDeploy d'Altiris) sont utilisés pour copier les disques de l'ordinateur modèle sur des dizaines ou des centaines d'ordinateurs. Ces clones sont ensuite soumis à quelques dernières mises au point, telles que l'attribution de noms uniques, puis utilisés par les employés de l'entreprise.

Un autre moyen couramment utilisé pour déployer des ordinateurs Windows est celui qui consiste à utiliser l'utilitaire sysdiff de Microsoft (qui fait partie du kit de ressources de Windows). Cet outil nécessite que l'administrateur système exécute une installation complète (généralement une installation par script sans assistance) sur chaque ordinateur, avant que sysdiff n'automatise l'application des images d'installation de programmes complémentaires.

Dans la mesure où l'installation est ignorée et où il est préférable de copier le secteur de disque plutôt que les fichiers, un déploiement cloné peut faire gagner énormément de temps par rapport à une installation sysdiff comparable. De plus, l'administrateur système n'est pas obligé d'apprendre à utiliser une installation indépendante ou sysdiff, ou de créer et déboguer des scripts d'installation. Il gagne ainsi de nombreuses heures de travail.

 Haut de page

Problème de duplication de SID

L'inconvénient du clonage réside dans le fait qu'il n'est pris en charge par Microsoft que dans un sens très limité. Microsoft a déclaré que le clonage de systèmes n'est pris en charge que s'il est exécuté avant d'arriver à la partie GUI de l'installation de Windows. Lorsque l'installation arrive à ce point, l'ordinateur reçoit un nom et un SID unique. Si un système est cloné au-delà de cette étape, les ordinateurs clonés auront tous des SID identiques. Notez qu'il ne suffit pas de modifier le nom d'un ordinateur ou d'ajouter l'ordinateur à un domaine différent pour modifier son SID. Le fait de modifier le nom ou le domaine ne contribue à modifier le SID du domaine que si l'ordinateur a été précédemment associé à un domaine.

Pour comprendre le problème que ce clonage peut causer, il est d'abord nécessaire de comprendre la procédure d'attribution de SID aux comptes locaux individuels d'un ordinateur. Le SID d'un compte local comprend le SID de l'ordinateur auquel est ajouté un RID (identificateur relatif). Le RID à une valeur fixe au départ ; cette valeur augmente d'une unité pour chaque compte créé. Cela signifie que le deuxième compte d'un ordinateur, par exemple, recevra le même RID que le deuxième compte d'un clone. Les deux comptes ont donc le même SID.

Les SID dupliqués ne posent aucun problème dans un environnement de domaines puisque les comptes de domaine ont des SID basés sur le SID de domaine. Toutefois, selon l'article de la base de connaissances Microsoft Q162001 relatif à la duplication de disque de versions de Windows NT installées, dans un environnement de groupes de travail, la sécurité est basée sur les SID de comptes locaux. Ainsi, si deux ordinateurs ont des utilisateurs disposant du même SID, le groupe de travail ne pourra pas faire de distinction entre les utilisateurs. Les ressources (fichiers et clés de Registre compris) auxquelles un utilisateur a accès seront également mises à la disposition de l'autre utilisateur.

La duplication de SID peut également causer des problèmes dans le cas où des supports amovibles sont formatés avec NTFS, et où les attributs de sécurité de comptes locaux sont appliqués aux fichiers et aux répertoires. Si un support de ce type est transféré sur un autre ordinateur ayant le même SID, les comptes locaux, qui, normalement, ne peuvent pas accéder aux fichiers, risquent d'y avoir accès si leurs ID de compte correspondent à ceux des attributs de sécurité. Ce problème ne se pose pas pour les ordinateurs qui ont des SID différents.

Un article écrit par Marc intitulé « Options de déploiement NT » a été publié dans le numéro du mois de juin de Windows NT Magazine. Il aborde le problème des SID dupliqués plus en détail, et présente la position officielle de Microsoft sur le clonage. Pour savoir si vous avez un problème de duplication de SID sur votre réseau, utilisez PsGetSid pour afficher les SID des ordinateurs.

 Haut de page

NewSID

NewSID est un programme qui modifie le SID d'un ordinateur. Il produit d'abord un SID aléatoire pour l'ordinateur, puis met à jour les instances du SID de l'ordinateur existant qu'il trouve dans le Registre et dans les descripteurs de sécurité des fichiers, et les remplace par le nouveau SID. Pour exécuter NewSID, vous devez disposer de privilèges d'administrateur. Ce programme possède deux fonctions : modification du SID et modification du nom de l'ordinateur.

Pour utiliser l'option d'exécution automatique de NewSID, spécifiez « /a » dans la ligne de commande. Vous pouvez également faire en sorte que le programme modifie automatiquement le nom de l'ordinateur en indiquant le nouveau nom après le commutateur « /a ». Par exemple :

newsid/a [nouveau nom]

exécute NewSID sans invite, modifie le nom de l'ordinateur (« nouveau nom ») et effectue un redémarrage si tout se passe bien.

Remarque : Si le système sur lequel vous souhaitez exécuter NewSID exécute IISAdmin vous devez interrompre le service IISAdmin avant d'exécuter NewSID. Utilisez cette commande pour mettre fin au service IISAdmin : net stop iisadmin /y

La fonctionnalité de synchronisation de SID de NewSID vous permet d'obtenir le nouveau SID d'un autre ordinateur au lieu de devoir créer un SID de façon aléatoire. Cette fonctionnalité vous donne la possibilité de déplacer un BDC (Backup Domain Controller ou Contrôleur de domaine de sauvegarde) vers un nouveau domaine, puisque la relation d'un BDC avec un domaine est identifiée par le fait qu'il dispose du même SID que les autres contrôleurs de domaine. Il vous suffit de choisir le bouton « Synchronize SID » et d'entrer le nom de l'ordinateur cible. Vous devez être autorisé à modifier les paramètres de sécurité des clés de Registre de l'ordinateur cible, ce qui signifie généralement que vous devez être connecté en tant qu'administrateur de domaine pour utiliser cette fonctionnalité.

Notez que lorsque vous exécutez NewSID, la taille du Registre augmente ; veillez donc à ce que la taille maximale du Registre tienne compte de cette croissance. Nous avons découvert que cette croissance n'avait pas d'impact perceptible sur les performances du système. La raison pour laquelle la taille du Registre augmente réside dans le fait qu'il subit une fragmentation lorsque les paramètres de sécurité temporaires sont appliqués par NewSID. Lorsque les paramètres sont supprimés, le Registre n'est pas compacté.

Important : Notez que bien que nous l'ayons testé de façon rigoureuse, vous utilisez NewSID à votre propre risque. Comme avec tout logiciel qui modifie les paramètres des fichiers et du Registre, nous vous conseillons fortement d'effectuer une sauvegarde complète de votre ordinateur avant d'exécuter NewSID.

 Haut de page

Déplacement d'un BDC

Voici les étapes que vous devez suivre lorsque vous voulez déplacer un BDC d'un domaine à un autre :

  1. Lancez le BDC que vous voulez déplacer et connectez-vous. Utilisez NewSID pour synchroniser le SID du BDC avec le PDC du domaine auquel vous souhaitez déplacer le BDC.
  2. Redémarrez le système pour lequel vous avez modifié le SID (le BDC). Puisque le domaine auquel le BDC est maintenant associé possède déjà un PDC actif, il s'exécutera en tant que BDC dans son nouveau domaine.
  3. Le BDC sera affiché en tant que poste de travail dans le Gestionnaire de serveur. Vous devez par conséquent utiliser le bouton « Add to Domain » pour ajouter le BDC à son nouveau domaine. N'oubliez pas de spécifier la case d'option de BDC durant cette opération.

 Haut de page

Mode de fonctionnement

NewSID démarre en lisant le SID de l'ordinateur existant. Le SID d'un ordinateur est enregistré dans la ruche SECURITY du Registre, sous lSECURITY\SAM\Domains\Account. Cette clé a une valeur nommée F et une valeur nommée V. La valeur V est une valeur binaire qui intègre le SID de l'ordinateur, à la fin de ses données. NewSID s'assure que ce SID est au format standard (3 sous-autorités de 32 bits précédées par trois champs d'autorité de 32 bits).

Ensuite, NewSID crée un nouveau SID aléatoire pour l'ordinateur. NewSID s'efforce de créer une valeur de 96 bits véritablement aléatoire, qui remplace les 96 bits des 3 valeurs de sous-autorité qui forment un SID.

Trois phases de remplacement de SID suivent. Dans la première phase, les ruches du Registre SECURITY et SAM sont analysées afin de déterminer les occurrences du SID de l'ancien ordinateur dans les valeurs des clés et des noms des clés. Lorsque le SID est trouvé dans une valeur, il est remplacé par le nouveau SID, et lorsque le SID est trouvé dans un nom, la clé et ses sous-clés sont copiées dans une nouvelle sous-clé du même nom, mais avec le nouveau SID qui remplace l'ancien.

Les deux dernières phases impliquent la mise à jour des descripteurs de sécurité. Les clés de Registre et les fichiers NTFS sont assortis de descripteurs de sécurité. Les descripteurs de sécurité consistent en une entrée qui identifie le compte possédant la ressource, le groupe propriétaire du groupe principal, un liste facultative d'entrées qui spécifient les actions permises par les utilisateurs ou les groupes (connue en tant que liste de contrôle d'accès discrétionnaire ou DACL) et un liste facultative d'entrées qui spécifient quelles actions exécutées par certains utilisateurs ou groupes produiront des entrées dans le journal des événements système ( liste de contrôle d'accès système ou SACL). Un utilisateur ou un groupe est identifié dans ces descripteurs de sécurité par son SID, et comme nous l'avons vu précédemment, les SID des comptes utilisateur locaux (autres que les comptes intégrés tels qu'Administrateur, Invité et ainsi de suite) sont composés du SID de l'ordinateur et d'un RID.

La première partie des mises à jour des descripteurs de sécurité a lieu sur tous les fichiers système des fichiers NTFS de l'ordinateur. Chaque descripteur de sécurité est analysé pour déterminer les occurrences du SID de l'ordinateur. Lorsque NewSID en trouve une, il la remplace par le SID du nouvel ordinateur.

La deuxième partie des mises à jour des descripteurs de sécurité s'effectue sur le Registre. Tout d'abord, NewSID doit s'assurer qu'il analyse toutes les ruches, et pas uniquement celles qui ont été chargées. Chaque compte utilisateur a une ruche de Registre qui est chargée en tant que HKEY_CURRENT_USER lorsque l'utilisateur est connecté, mais reste sur le disque dans le répertoire du profil de l'utilisateur lorsqu'il n'est pas connecté. NewSID identifie les emplacements de toutes les ruches utilisateur en énumérant la clé HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList, qui pointe vers les répertoires dans lesquels ils sont enregistrés. Il les charge ensuite dans le Registre en utilisant RegLoadKey sous HKEY_LOCAL_MACHINE et analyse le Registre tout entier, examinant chaque descripteur de sécurité à la recherche du SID de l'ancien ordinateur. Les mises à jour sont effectuées de la même manière que pour les fichiers, à la suite de quoi NewSID décharge les ruches utilisateur qu'il a chargées. Pour terminer, NewSID analyse la clé HKEY_USERS qui contient la ruche de l'utilisateur couramment connecté, ainsi que la ruche .Default. Cette opération est nécessaire parce qu'une ruche ne peut pas être chargée deux fois, et la ruche de l'utilisateur connecté ne sera donc pas chargée dans HKEY_LOCAL_MACHINE lorsque NewSID charge les ruches des autres utilisateurs.

Enfin, NewSID doit mettre à jour les sous-clés de ProfileList pour se référer aux SID des nouveaux comptes. Cette étape est nécessaire pour que Windows NT associe correctement les profils aux comptes utilisateur après que les SID des comptes ont été modifiés pour refléter le SID du nouvel ordinateur.

NewSID s'assure qu'il peut accéder à chaque fichier et clé de Registre du système et les modifier en s'octroyant les privilèges suivants : Système, Sauvegarde, Restauration et Appropriation.

 Haut de page

Utilisation de la source

Le code source complet de NewSID a été fourni à des fins de formation uniquement. Vous n'êtes pas autorisé à utiliser ce code dans un produit de modification de SID gratuit ou commercial, mais vous êtes autorisé à utiliser ses techniques dans d'autres programmes à des fins privées ou commerciales.

 Haut de page