Techniques avancées concernant le Registre Windows

Les ruches d'utilisateurs
- Planifier une modification du Registre : Nous allons voir dans cette section comment planifier un changement dans le Registre. Vous avez différentes méthodes à votre disposition : * Les changements doivent s'appliquer à votre seul compte d'utilisateur : à partir de votre session, modifiez la branche HKEY_CURRENT_USER. * Les changements doivent s'appliquer à l'ensemble des utilisateurs de votre machine : à partir de votre session, modifiez la branche HKEY_LOCAL_MACHINE. * Les changements doivent s'appliquer à un profil d'utilisateurs en particulier : éditer la ruche correspondant au profil d'utilisateurs. * Les changements doivent s'appliquer à tout nouvel utilisateur : éditer la ruche correspondant au profil de l'utilisateur par défaut (\Documents and Settings\Default User\NTUSER.DAT). * Les changements doivent s'appliquer à un ordinateur faisant partie d'un réseau local : utilisez le Registre distant. Information) À qui appliquer les modifications ? Selon ce principe, nous utilisons dans cet ouvrage ce type de notation : \SOFTWARE. Cela signifie qu'il est possible d'effectuer la même modification dans une de ces arborescences : HKEY_CURRENT_USER\Software ou HKEY_LOCAL_MACHINE\SOFTWARE selon que vous souhaitiez que les modifications s'appliquent à la ruche de l'utilisateur actuellement chargé (c'est généralement la personne qui a ouvert une session interactive) ou à l'ensemble des utilisateurs de votre machine. - Éditer les ruches de chaque profil d'utilisateur : Il est ainsi possible de modifier le Registre pour un utilisateur en particulier, et ce sans être connecté sur son compte. Cela est également utile si, à partir de ce compte d'utilisateur, vous ne pouvez pas accéder à l'éditeur du Registre. Définition : Lors de votre première connexion sur la machine, un profil d'utilisateur par défaut est utilisé. Ce profil standard est décrit dans cette arborescence du Registre : HKEY_USERS. Au fur et à mesure des ajustements que vous apportez à votre environnement de travail, vos préférences sont mémorisées dans votre profil personnalisé. Sous les systèmes NT, on utilise aussi des profils itinérants (on parle plutôt de profil "errant"). Dans un réseau, quand un même utilisateur utilise différents ordinateurs, il lui est toujours possible de retrouver son même environnement de travail quel que soit l'ordinateur sur lequel ouvre une session. En conclusion, un utilisateur ne peut pas se connecter sur son compte si un profil par défaut, ou son profil d'utilisateur, ne lui est pas assigné. Dans cet exemple, le compte d'utilisateur s'appelle Isabelle. 1) Dans le Registre, sélectionnez la branche HKEY_USERS. 2) Cliquez sur Fichier/Charger la ruche... 3) Dans la fenêtre Charger la ruche, cliquez sur la liste déroulante Regarder dans et parcourez ce type d'arborescence : \Documents and Settings\Nom_Utilisateur. Sélectionnez ensuite le fichier NTUSER.DAT. 4) Cliquez sur le bouton Ouvrir. 5) Dans la zone de texte Nom de la clé, saisissez n'importe quel nom (vous pouvez choisir le nom de l'utilisateur si vous voulez), puis cliquez sur OK. 6) Dans le Registre, double-cliquez sur la clé HKEY_USERS. Juste en dessous, une clé portant le nom que vous avez donné à la ruche apparaît. 7) Double-cliquez dessus, puis ouvrez l'arborescence que vous souhaitez modifier. Par exemple, imaginons que nous souhaitions interdire à l'utilisateur Isabelle d'effectuer des modifications dans l'onglet Thèmes des propriétés d'affichage. Il nous suffira de créer une entrée dans le Registre qui estompera l'onglet Thèmes. 8) Ouvrez HKEY_USERS\Isabelle\Software\Microsoft\Windows\CurrentVersion\Policies. 9) Créez éventuellement une clé nommée Explorer 10) Dans le volet de droite, créez une valeur DWORD nommée NoThemesTab. 11) Éditez cette valeur et saisissez, dans Données de la valeur, le chiffre 1. 12) Sélectionnez HKEY_USERS\Isabelle. 13) Cliquez sur le menu Fichier puis sur le sous-menu Décharger la ruche... 14) Cliquez sur le bouton OK. Vous pouvez maintenant vous connecter sur le compte d'utilisateur concerné afin de vérifier que les changements opérés dans le Registre ont été correctement répercutés - Distribuer un fichier .reg d'un compte vers l'autre : Nous allons prendre un exemple "basique". Imaginons que nous ne souhaitions pas que le compte Jean et Isabelle accèdent à l'onglet Bureau. 1) Connectez-vous sur le compte de Jean. 2) Créez une clé nommée System dans

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies. 3) Créez une nouvelle valeur DWORD nommée NoDispBackgroundPage possédant comme données le chiffre 1. Fermez cette session d'utilisateur puis ouvrez une nouvelle session sur le compte Administrateur ou un compte possédant des droits d'administrateur. 1) Lancez le Registre. 2) Sélectionnez HKEY_LOCAL_MACHINE. 3) Cliquez sur Fichier/Charger la ruche… 4) Sélectionnez ce fichier : \Documents and Settings\Jean\NTUSER.DAT. 5) Dans la zone de texte Nom de la clé:, saisissez ceci : Test Une clé nommée Test va apparaître dans HKEY_LOCAL_MACHINE. 6) Ouvrez cette arborescence du Registre HKEY_LOCAL_MACHINE\Test\Software\Microsoft\Windows\CurrentVersion\Policies\System. 7) Cliquez sur Fichier/Exporter. 8) Choisissez le nom et l'emplacement de votre fichier .reg. Le contenu de votre fichier .reg ressemblera à celui-ci : Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Test\Software\Microsoft\Windows\CurrentVersion\Policies\System] "NoDispBackgroundPage"=dword:00000001 9) Sélectionnez la clé Test puis cliquez sur Fichier/Décharger la ruche… 10) Sélectionnez la clé HKEY_LOCAL_MACHINE puis cliquez sur Fichier/Charger la ruche… 11) Sélectionnez ce fichier \Documents and Settings\Isabelle\NTUSER.DAT. 12) Dans la zone de texte Nom de la clé:, saisissez ceci : Test La même clé nommée Test va apparaître dans HKEY_LOCAL_MACHINE. 13) Cliquez sur Fichier/Importer… puis sélectionnez le fichier .reg que vous venez juste de créer et cliquez sur Oui. 14) Sélectionnez la clé Test puis cliquez sur Fichier/Décharger la ruche… L'ensemble des modifications contenues dans le fichier .reg auront été répercutées sur le profil d'utilisateur nommé Isabelle. Évidemment, vous pouvez créer des fichiers .reg beaucoup plus importants. La seule astuce consiste à utiliser le même nom de fichier pour les deux ruches afin que l'arborescence visée par le fichier .reg corresponde à celle de la ruche du profil d'utilisateur que l'on va modifier. - Charger la ruche système : C'est le même principe que précédemment, à la différence que vous devez sélectionner l'arborescence HKEY_LOCAL_MACHINE et que le fichier permettant la propagation des stratégies est \WINDOWS\system32\config\system. Attention de sélectionner le fichier system sans extension visible. Si, en revanche, vous devez charger la ruche système pendant une installation de Windows, sélectionnez ce fichier : system.sav. Cela vous étonne ? Pendant l'installation de Windows, appuyez sur le raccourci clavier Maj + F10. Une fenêtre d'Invite de commandes apparaît. Il vous suffit de saisir la commande regedit pour accéder au Registre Windows.

Éditez le Registre Windows XP à partir d’un autre système
De la même façon qu’il est possible de charger une ruche d’utilisateur ou la ruche système localement vous pouvez effectuer la même opération à partir d’une installation parallèle de Windows XP ou d’un système XP placé sur une autre partition. Vous pouvez également vous servir d’un disque PE-Builder.

Les fichiers REG
- Créer des fichiers d'enregistrement du Registre : 1) Ouvrez l'arborescence contenant les modifications que vous avez apportées au Registre. 2) Cliquez sur Fichier/Exporter... 3) Dans la zone du texte Nom du fichier:, saisissez un nom évocateur. La liste déroulante Type : permet de choisir le format d'enregistrement. 5) Choisissez votre format d'enregistrement. * Fichiers d'enregistrements (*.reg) : c'est le choix par défaut. Le fichier portera une extension .reg et cet en-tête : Windows Registry Editor Version 5.00. * Fichiers ruche du Registre (*.*) : le fichier d'enregistrement ne comportera aucun extension. Vous pouvez lui assigner une extension .hiv. C'est la solution à privilégier si vous devez faire une sauvegarde d'une partie importante du Registre. Un fichier .hiv fera le double de la taille d'un .reg. C'est une image au format binaire de l'arborescence que vous avez sauvegardée. Vous ne pouvez pas exporter un tel fichier en vous servant de la commande Regedit ou en double-cliquant sur le fichier de ruche. Vous devez cliquez sur Fichier/Importer puis sélectionnez les fichier de ruche. À l'inverse d'un fichier .reg l'arborescence existante sera écrasée et son contenu entièrement remplacé par celui du fichier .hiv. Dans

le cas d'un fichier REG, les anciennes valeurs sont conservées. Si deux valeurs portent le même nom, seules les données de la valeur sont éventuellement modifiées. * Fichiers texte (*.txt) : le fichier d'enregistrement comportera une extension .txt. Il vous est possible de l'ouvrir avec le Bloc-notes Windows. L'heure de la dernière écriture (et donc de la dernière modification) sera mentionnée. * Fichiers d'enregistrement Win9x/NT4 (*.reg) : le fichier portera une extension .reg et cet en-tête : REGEDIT4. Il est de ce fait également possible de fusionner le fichier .reg avec un système antérieur à Windows XP. * Tous les fichiers : permet de définir n'importe quelle extension pour le fichier d'enregistrement (dont par exemple l'extension .txt). La rubrique Étendue de l'exportation vous permet de définir si vous exportez la branche sélectionnée ou la totalité du Registre En sens inverse, il vous est possible de fusionner les informations contenues dans un fichier .reg en suivant cette procédure : 1) Dans le Registre, cliquez sur Fichier/Importer... 2) Sélectionnez le fichier d'enregistrement puis cliquez sur le bouton Ouvrir. 3) Avec le bouton droit de la souris, cliquez sur le fichier d'enregistrement puis sur la commande Fusionner. Il existe une dernière possibilité : double-cliquez sur le fichier d'enregistrement. Une boîte de dialogue viendra confirmer le succès de l'opération. - Sous quel format dois-je sauvegarder le Registre ? Si vous devez sauvegarder une clé particulière, un fichier .reg suffit. Si, par contre, vous devez créer une copie d'une partie importante du Registre, choisissez comme format de sauvegarde les fichiers de ruche. Dans ce dernier cas et si vous devez restaurer votre Registre dans son état initial, l'ensemble des modifications que vous aurez effectuées seront écrasées. - Utiliser Regedit.exe : Les commutateurs suivants peuvent être appliqués : Note : "Fichier" peut comporter n'importe quelle extension ou ne pas comporter d'extension. Par ailleurs, l'emploi des abréviations afin de définir les noms de clés principales est autorisé. Un commutateur peut être précédé du signe - ou /. -e Fichier Arborescence : exporte au format Unicode l'arborescence qui a été définie et ce dans le fichier spécifié. L'en-tête sera celui-ci : Windows Registry Editor Version 5.00. -a Fichier Arborescence : exporte l'arborescence définie en mode compatibilité. L'en-tête sera donc celuici : REGEDIT4 Par exemple : regedit /e Default HKEY_USERS\.DEFAULT Si vous souhaitez exporter les arborescences HKEY_LOCAL_MACHINE et HKEY_USERS saisissez cette commande : regedit /e ALL.reg -s Fichier : importe silencieusement les informations contenues dans un fichier. -s : désactive toute boîte de dialogue. Ce commutateur peut donc être employé avec un autre. Ces commutateurs ne sont plus utiles : -i Fichier : importe les informations contenues dans le fichier spécifié. -c Fichier : permet de créer et de remplacer une entrée existante dans le Registre. Ce commutateur vous permet aussi de supprimer facilement une clé existante. Imaginons que vous souhaitiez supprimé cette arborescence : HKEY_CURRENT_USER\Test Copiez ce contenu dans un fichier nommé "DelTest.txt" : REGEDIT4 [-HKEY_CURRENT_USER\Test] Cela revient simplement à placer un tiret devant l'arborescence à supprimer. Saisissez ensuite cette commande : regedit -d -s DelTest.txt ou, plus simplement, regedit /s DelTest.txt Si vous devez supprimer l'ensemble des valeurs contenues dans une clé tout en la sauvegardant, vous devez au préalable supprimer la clé parente puis la recréer avec les valeurs correspondantes : [-HKEY_CURRENT_USER\Test] [HKEY_CURRENT_USER\Test] Par ailleurs, lisez dans le paragraphe précédent le passage expliquant la différence entre les fichiers .reg et les .hiv. Afin de supprimer de manière sélective certaines valeurs lisez le paragraphe suivant. - Syntaxe des fichiers REG : Si vous choisissez d'exporter ce type de contenu : [HKEY_LOCAL_MACHINE\SOFTWARE\test\test\test], il sera créé autant de clés nommées Test que ce qu'il a été indiqué. * Afin de supprimer cette même clé, votre fichier .reg devra contenir ceci : [HKEY_LOCAL_MACHINE\SOFTWARE\test\test\test] * Afin de supprimer toute l'arborescence ajoutée : [-HKEY_LOCAL_MACHINE\SOFTWARE\test] * Afin de supprimer une entrée, utilisez ce type de syntaxe : "nom_de_la_valeur"=-

Si vous souhaitez que la clé HKEY_LOCAL_MACHINE\SOFTWARE\test contienne ces valeurs, copiez ce contenu : Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\test] @="données de la valeur" "Chaîne"="Test" "DWORD"=dword:0000000b "Binaire"=hex:01,02,03,aa "Chaîne multiple"=hex(7):4c,00,69,00,67,00,6e,00,65,00,20,00,31,00,00,00,4c,00,69,\ 00,67,00,6e,00,65,00,20,00,32,00,00,00,4c,00,69,00,67,00,6e,00,65,00,20,00,\ 33,00,00,00,00,00 "Chaîne extensible"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,\ 00,6f,00,74,00,25,00,00,00 Vous pouvez aussi bien modifier directement le Registre puis exporter la branche modifiée dans un fichier d'enregistrement... Nous en tirons ces conclusions : * Le type de valeur chaîne n'est pas précisé. * Les données d'une valeur DWORD sont exprimées en notation hexadécimale. * Les valeurs binaires sont indiquées en utilisant cette notation : hex: * Les valeurs de chaîne multiple sont indiquées en utilisant cette notation : hex(7): * Les valeurs de chaîne extensible sont indiquées en utilisant cette notation : hex(2): * Les lignes en notation hexadécimale sont continuées en utilisant le signe \. * Dans le cas des valeurs de chaîne multiple, les retours à la ligne sont indiqués par la chaîne : 00, Toutes les lignes sont codées de cette façon : 25,53,79,73,74,65,6d,52,6f,6f,74,25,00 %SystemRoot% Il suffit de prendre une table de code ASCII pour trouver l'équivalent : http://terroirs.denfrance.free.fr/p/webmaster/unicode_utf-8.html. Au signe % correspond la notation hexadécimale 25, à la lettre S correspond le nombre 53, etc. Dans une application Windows, pour obtenir le signe %, appuyez sur cette combinaison de touches : Alt + 37. Cela correspond cette fois-ci à la table des codes UTF-8. La seule particularité est que, les caractères étant codés sur deux octets, il faut donc redoubler chaque valeur : * 25 devient donc : 25,00. * 00 devient donc : 00,00. Il n'est pas utile de préciser la valeur (par défaut) d'une clé puisqu'elle sera automatiquement créée. Si la valeur (par défaut) doit contenir des données, utilisez cette syntaxe : @="Données_Valeur" Une valeur sans données s'écrit de cette façon : "Nom_Valeur"="" - Se servir des fichiers REG : Nous pouvons nous servir des possibilités que recèle le Registre de votre ordinateur. Imaginons que vous ayez effectué une modification dans la branche HKEY_CURRENT_USER\Control Panel. Il vous est toujours possible d'exporter le contenu de la branche HKEY_USERS\.DEFAULT\Control Panel puis de modifier le fichier .reg en changeant le nom de la clé HKEY_USERS\.DEFAULT\Control Panel\ en HKEY_CURRENT_USER\Control Panel\. La première clé contenant les paramètres par défaut, vous retrouverez des paramètres normaux pour votre profil d'utilisateur. Une autre possibilité consiste à accéder ou à créer un compte d'utilisateur puis d'exporter une branche du Registre en plaçant le fichier d'enregistrement dans un dossier partagé. Ouvrez alors votre compte d'utilisateur afin de procéder à l'importation des informations contenus dans le fichier .reg. Enfin, vous avez toujours la possibilité d'utiliser un autre ordinateur sur lequel est installée la même version de Windows XP afin de rétablir les paramètres corrects du Registre. - Automatiser la fusion des fichiers d'enregistrement : Le principe est de créer un fichier .reg puis de s'en servir pour modifier la ruche utilisateur. Téléchargez un petit utilitaire nommé Modifyprofile à partir de cette adresse : http://optimumx.com/download/modifyprofile.zip. Une fois l'archive ZIP décompressée à la racine de votre disque dur, il vous suffira de lancer le programme en utilisant l'Invite de commandes. Nous allons prendre un exemple afin de mieux apprécier les possibilités de cet utilitaire. Admettons qu'il existe sur votre ordinateur le compte d'utilisateur Jean, et que vous ne vouliez pas que ce dernier puisse accéder à la barre d'adresses d'Internet Explorer. 1) Lancez Internet Explorer. 2) Avec le bouton droit de la souris, cliquez sur une partie vide de la barre d'outils, puis décochez l'option Barre d'adresses. 3) Cliquez sur Démarrer/Exécuter, puis saisissez : regedit /a IEBarre.reg "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\WebBrowser". Un fichier nommé IEBarre.reg sera créé dans \Documents and settings\Nom_Utilisateur. 4) Avec le bouton droit de la souris, cliquez sur ce fichier puis sur la commande Modifier.

5) Supprimez toutes les valeurs inscrites, à l'exception de celles qui suivent l'inscription ITBarLayout. 6) Modifiez la ligne [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\WebBrowser] en inscrivant à la place : [HKEY_USERS\Jean\Software\Microsoft\Internet Explorer\Toolbar\WebBrowser] 7) Ajoutez ces deux lignes : [HKEY_USERS\Jean\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "NoBandCustomize"=dword:00000001 Votre utilisateur ne pourra pas accéder aux propriétés de la barre d'outils. 8) Enregistrez le fichier à la racine de votre disque dur. Ce n'est bien entendu pas une obligation, mais cela va nous simplifier l'existence pour la suite des manipulations. 9) Cliquez sur Démarrer/Exécuter, puis saisissez : cmd. 10) Placez-vous à la racine de votre disque dur en vous servant de la commande cd\ 11) Saisissez ensuite cette commande : modifyprofile.exe /profile :"c:\documents and settings\jean\ntuser.dat" /reg :c:\iebarre.reg /keyname:jean /keyname:jean est simplement le nom de la ruche utilisateur. Vous pouvez modifier l'ensemble des profils utilisateur en utilisant ce commutateur : /PROFILE:ALL, ou alors répercuter les changements au seul profil utilisateur par défaut : /PROFILE:"C:\Documents and Settings\Default User\ntuser.dat"

Manipuler le Registre distant
À partir de n'importe quelle version de Windows XP, il vous est possible de manipuler facilement le Registre d'un ordinateur faisant partie d'un réseau familial. C'est donc non pas le Registre local mais le Registre de la machine distante qui sera modifié. Nous partons du principe que vous possédez deux ordinateurs sur lesquels le nom d'un compte possédant des privilèges d'administrateur et le mot de passe attaché à ce compte sont identiques. Ces deux ordinateurs font tous deux partie d'un réseau organisé en groupe de travail. L’un servira d’Ordinateur maître et l’autre d’Ordinateur élève. Dans notre exemple, nous les avons respectivement nommé Ordinateur1 et Ordinateur2. Bien entendu, le nom du groupe de travail doit être le même sur les deux ordinateurs. Pour s'en assurer, suivez cette procédure : 1) Cliquez sur le bouton Démarrer puis, avec le bouton droit de la souris, cliquez sur l'icone Poste de travail. 2) Dans le menu contextuel qui s'affiche, cliquez sur la commande Propriétés puis sur l'onglet Nom de l'ordinateur. Dans notre exemple, le nom du groupe de travail est MSHOME. Le bouton Modifier… vous permet de changer le nom de l'ordinateur tel qu'il apparaîtra dans votre réseau ainsi que le nom du groupe de travail. Si vous devez effectuer un changement, redémarrez votre ordinateur. Nous allons ensuite vérifier la question des mots de passe. Nous supposons dans cet exemple que le nom du compte commun aux deux machines est CompteTest. 1) Sur les deux machines, cliquez sur le menu Démarrer puis sur la commande Exécuter. 2) Dans la zone de texte Ouvrir :, saisissez cmd puis validez par le bouton OK. 3) Tapez ceci en validant par la touche Entrée de votre clavier : net user CompteTest Votre_Nouveau_Mot_De_Passe Par exemple, si le mot de passe choisi est Azerty : net user CompteTest azerty 4) Fermez l'Invite de commandes. Nous allons ensuite vérifier si les services sur les deux machines sont correctement paramétrés. 1) Toujours sur les deux machines, cliquez sur Démarrer/Exécuter. Dans la zone de texte Ouvrir :, saisissez : services.msc 2) Double-cliquez sur un service nommé Accès à distance au Registre. 3) Vérifiez que, en face de Type de démarrage :, soit indiqué Automatique. Sinon, sélectionnez ce mode dans le menu déroulant. En face de la rubrique Statut du service, il est indiqué si le service est Arrêté ou Démarré. 4) Si le service a été stoppé, cliquez simplement sur le bouton Démarrer. 5) Refaites les mêmes opérations pour ces services : Carte de performance WMI - Extensions du pilote WMI - Gestionnaire de connexion automatique d'accès distant - Gestionnaire de connexions d'accès distant - Localisateur d'appels de procédure distante (RPC) - Serveur - Station de travail - Système d'événements de COM+. 6) Cliquez sur Démarrer/Exécuter puis saisissez : wmimgmt.msc 7) Avec le bouton droit de la souris, cliquez sur le dossier WMI Control (Local) puis, dans le menu contextuel qui s'affiche, sur la commande Propriétés. 8) Sélectionnez l’onglet Sécurité puis le dossier Root et, enfin, le bouton Sécurité. Assurez-vous que le compte Administrateurs (Nom_du_Compte\Administrateurs) est bien présent et que, sous la colonne Autoriser, toutes les autorisations sont cochées. Validez deux fois par OK. Si vous possédez la version professionnelle de Windows XP, il faut encore que le partage simple des fichiers soit désactivé. 1) Avec le bouton droit de la souris, cliquez sur le menu Démarrer puis, dans le menu contextuel qui s'affiche, cliquez sur Ouvrir ou Explorer.

2) Cliquez sur le menu Outils puis sur la commande Options des fichiers… 3) Cliquez sur l'onglet Affichage puis, dans la rubrique Paramètres avancés, décochez la case Utiliser le partage simple des fichiers (recommandé). 4) Cliquez sur OK puis fermez la fenêtre de l'Explorateur. Jusque là, si vous avez dû effectuer le moindre changement, il faut redémarrer la ou les deux machines. 1) Après vous être connecté sur le compte également présent sur l'ordinateur cible, lancez le Registre Windows. 2) Cliquez sur le menu Fichier puis sur la commande Connexion au Registre réseau… 3) Dans la fenêtre Sélectionnez Ordinateur, cliquez sur le bouton Avancé… puis sur Rechercher. Sous la colonne Nom (RDN) apparaissent l'ensemble des ordinateurs présents sur votre réseau. 4) Cliquez sur l'ordinateur dont vous voulez vous approprier le Registre puis sur le bouton OK. Le nom de l'ordinateur cible apparaît dans la rubrique Entrez le nom de l'objet à sélectionner (exemples) :. 5) Cliquez à nouveau sur le bouton OK. Sous l'arborescence Poste de travail apparaît une seconde arborescence portant le nom de l'ordinateur distant. Vous pouvez modifier les branches du Registre qui vous intéressent. 6) Par exemple, ouvrez HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies. 7) Créez une clé nommée Explorer 8) Dans le volet de droite, créez une valeur DWORD nommée NoDeletePrinter 9) Éditez cette valeur DWORD puis, dans la zone de texte Données de la valeur, saisissez le chiffre 1. 10) Refaites les mêmes opérations en créant une valeur DWORD nommée NoAddPrinter À partir de cet instant, il ne sera plus possible d'ajouter ou de supprimer une imprimante sur l'ordinateur cible. Les changements sont immédiats. 11) Une fois les modifications effectuées, cliquez, avec le bouton droit de la souris, sur le dossier de l'ordinateur distant et choisissez la commande Déconnecter. Vous pouvez effectuer ce type de manipulation en laissant l'ordinateur cible sur l'écran d'ouverture de session.

Les permissions NTFS et le Registre
À chaque ouverture de session, le nom de l'utilisateur et, éventuellement, son mot de passe sont transmis à un moniteur de sécurité locale qui accède à la gestion des comptes de sécurité (SAM pour Security Account manager ) et génère un jeton d'accès (Token). Il est ainsi systématiquement vérifié si l'utilisateur possède les droits d'accès à un objet sélectionné (cela peut-être un dossier, un fichier, un logiciel, une stratégie de groupe, une clé du Registre ou une tâche planifiée). La distinction est faite entre les objets simples et les objets conteneurs. Ce rapport contenant/contenu (à la manière d'un dossier qui peut contenir plusieurs fichiers) permet de spécifier le mécanisme d'héritage qui les relie. En bref, un masque de permissions valable pour un objet parent s'applique par défaut aux objets enfants. Par exemple, les règles qui régissent la sécurité d'un dossier s'appliqueront à l'ensemble de ses sous-dossiers. Un descripteur de sécurité liste l'ensemble des autorisations et des restrictions pour chaque objet du système et pour les utilisateurs ou les groupes d'utilisateurs concernés. Pour chaque objet, la liste d'utilisateurs qui y est attachée est appelée ACL (Access Control List). Par exemple, vous avez l'autorisation de lecture sur tel fichier mais pas d'écriture. En bref, vous ne pourrez en aucune façon modifier ce document. Nous pouvons ainsi définir un masque de permissions (autorisations ou interdictions) pour chaque objet "sécurisable". Ce descripteur de sécurité vérifie ces deux informations : * Rappelons que le SID du propriétaire de l'objet est le numéro permettant d'identifier chacun des acteurs opérant sur votre système (utilisateurs, groupes d'utilisateur ou entités système appelés aussi groupes globaux). * Une DACL (Discretionary Access Control List) est une liste d'entrées de contrôle d'accès (ACE ou Access Control Entry) définissant les accès possibles pour chaque SID. Elle est à la discrétion du propriétaire de l'objet. En termes clairs, c'est ce dernier qui définit le jeu des permissions NTFS sur un objet. - Comprendre les permissions NTFS : Nous allons simplement suivre un exemple : 1) Dans HKEY_CURRENT_USER, créez une clé nommée Test1 2) Sélectionnez cette clé puis créez une sous-clé nommée Test2 3) Avec le bouton droit de la souris, cliquez sur la clé Test2 puis sur la commande Autorisations. Vous pouvez constater que la plupart des cases listées sous la colonne Autoriser sont grisées et que certaines ne sont donc pas modifiables. La clé hérite du masque de permissions de la clé parente. 4) Cliquez sur le bouton Paramètres avancés puis sur l'onglet Propriétaire. Le propriétaire actuel de cet élément est votre nom d'utilisateur. Vous pouvez faire tout ce que vous voulez de cette clé puisque vous en avez un contrôle total : lecture, écriture, etc. - Désactiver l'héritage : Il ne vous sera pas possible de changer certaines permissions tant que le mécanisme d'héritage sera

actif. 1) Toujours en suivant notre exemple, cliquez sur le bouton Paramètres avancés. 2) Décochez simplement la case Hérite de l'objet parent les entrées d'autorisation qui s'appliquent aux objets enfants. Il vous est possible de copier le jeu des permissions ou de supprimer le masque des permissions. 3) Cliquez sur le bouton Supprimer puis sur Appliquer et Oui. 4) Fermez cette fenêtre en validant par OK. Cliquez encore sur Oui. Plus aucun masque de permissions NTFS n’est défini pour cette clé : la rubrique Noms d'utilisateur ou de groupe : est vide. Vous ne pourrez pas non plus la renommer ou la supprimer. Vous obtiendrez ce type d'erreur : Le Registre ne peut renommer Nom_Clé. Erreur en renommant la clé. Le problème sera le même si vous tentez de supprimer la clé parente : celle-ci contenant une sous-clé à laquelle nous ne pouvons toucher, la suppression de la clé parente est interdite. - Ajouter un utilisateur ou un groupe d'utilisateurs : 1) Accédez aux autorisations de la clé Test2 puis cliquez sur le bouton Paramètres avancés. 2) Cliquez sur le bouton Ajouter…/Avancé… et sur Rechercher. 3) Sélectionnez, dans la colonne Nom(RDN), votre nom d'utilisateur puis cliquez deux fois sur OK. Il va être maintenant possible de définir un masque de permissions pour l'utilisateur que vous avez ajouté. 4) Cliquez sur Paramètres avancés puis Modifier... La liste déroulante Appliquer à : vous permet de préciser si vous souhaitez appliquer le jeu des autorisations que vous allez définir à la clé, à l'ensemble des sous-clés qu'elle contient ou encore uniquement aux sous-clés. 5) Cliquez sur Cette clé et les sous-clés puis cochez les cases Énumérer les sous-clés et Contrôle en lecture. Vous pouvez constater que vous pouvez "traverser" la clé Test2 afin de voir les valeurs éventuellement présentes, mais il ne vous sera toujours pas possible de la supprimer. - Se servir du mécanisme d'héritage : Il y a un moyen de rétablir la clé Test2 dans son état d'origine : il suffit d'activer, dans le jeu des permissions de la clé, l'autorisation Contrôle total pour votre compte d'utilisateur ou pour le groupe auquel vous appartenez (administrateurs). Une autre solution est également possible : 1) Accédez aux autorisations de la clé parente Test1. 2) Cliquez sur le bouton Paramètres avancés. 3) Cochez la case Remplacer les entrées d'autorisation de tous les objets enfants par les entrées affichées ici et qui s'appliquent aux objets enfants. 4) À la question Voulez-vous continuer, répondez par Oui puis validez par OK. Le jeu des permissions des deux clés est maintenant strictement identique. - Définir les permissions sur les clés : Deux permissions génériques sont listées dans la première fenêtre : Contrôle total et Lecture. Si vous cochez la case Lecture, les permissions suivantes seront accordées : Requête sur une valeur, Énumérer les sous-clés, Avertir et Contrôle en lecture. La case Autorisations spéciales sera cochée quand aucune des permissions génériques n'a été accordée. En cliquant sur les boutons Paramètres avancés et Modifier..., il est possible d'affiner le jeu des permissions. Voici les plus utiles : * Requête sur une valeur : donne un accès en lecture aux valeurs présentes dans la clé. * Énumérer les sous-clés : donne un accès en lecture aux sous-clés. * Avertir : permet d'effectuer un audit de cette branche du Registre. * Définir la valeur : permet de modifier ou de créer des valeurs, mais non de renommer ou de supprimer la clé. * Créer une sous-clé : permet de créer ou de renommer une sous-clé mais non de la supprimer. * Supprimer : permet de supprimer des clés mais pas des valeurs. - Utiliser les permissions NTFS dans le Registre Windows : Bien que ces fonctionnalités puissent paraître complexes, les exemples d'application sont vraiment infinis. Voici donc quelques astuces... - Interdire l'accès à une fonctionnalité Windows : Il est possible de rendre inaccessibles un certain nombre de commandes à un utilisateur ou un groupe d'utilisateurs en particulier. Dans le Registre, ouvrez HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder ou HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions. * La première clé renferme les commandes accessibles en cliquant, dans l'Explorateur Windows, sur Outils/Options des dossiers/Affichage. * La seconde contient certaines commandes disponibles en cliquant, dans Internet Explorer, sur Outils/Options Internet/Avancé.

Si vous souhaitez désactiver ou rendre invisibles ces commandes pour un utilisateur ou un groupe d'utilisateurs, inspirez-vous de cette méthode : 1) Accédez à l'onglet Sécurité de la clé ou de l'une des sous-clés. 2) Désactivez le mécanisme d'héritage puis copiez les autorisations. 3) Éventuellement, ajoutez l'utilisateur ou le groupe d'utilisateurs concernés par les restrictions. 4) Paramétrez les entrées Refuser ou désactivez certaines entrées Autoriser. Prenons un exemple. Vous souhaitez faire disparaître, pour le groupe d'utilisateurs avec pouvoir, l'accès, dans les options avancées d'Internet Explorer, aux commandes listées sous la rubrique Navigation. 1) Avec le bouton droit de la souris, cliquez sur une clé nommée BROWSE puis sur Autorisations… 2) Cliquez sur le bouton Paramètres avancés puis décochez la case Hérite de l'objet parent les entrées d'autorisation qui s'appliquent aux objets enfants. 3) Cliquez sur le bouton Copier puis sur OK. 4) Si le groupe Utilisateurs avec pouvoir n'est pas listé, cliquez sur les boutons Ajouter..., Avancé... puis Rechercher. 5) Sélectionnez Utilisateurs avec pouvoir puis cliquez deux fois sur OK. 6) Sous la colonne Refuser, cochez la case placée en face de la ligne Contrôle total. Il ne vous reste plus qu'à ouvrir une session sur le compte d'un utilisateur avec pouvoir puis d'accéder aux options avancées d'Internet Explorer : la rubrique Navigation sera invisible ! Il vous est possible d'opérer plus finement en n'intervenant que sur les clés présentes dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\BROWSE. Par exemple, il est possible de faire disparaître la case à cocher Utiliser la saisie semi-automatique dans la barre d'adresses pour les adresses Web en supprimant la permission Requête sur une valeur pour la clé AUTOAPPEND : les valeurs qui définissent l'apparence des options ne pouvant plus être lues, la case à cocher ne pourra être affichée. Signalons qu'un programme comme Regmon vous permettra de repérer facilement les clés concernées quand on coche ou décoche telle ou telle commande présente dans l'Explorateur Windows ou Internet Explorer.

Reg.exe
En Invite de commandes, la syntaxe de la commande Reg est la suivante : 1) Afin d'ajouter une clé ou une entrée au Registre : Reg add NomClé [/v NomEntrée|/ve] [/t TypeDonnées] [/s séparateur] [/d valeur] [/f] * NomClé : spécifie le chemin d'accès complet de la sous-clé. Les valeurs suivantes sont autorisées : Nom de la clé - Abréviation HKEY_CLASSES_ROOT : HKCR HKEY_CURRENT_USER : HKCU HKEY_LOCAL_MACHINE : HKLM HKEY_USERS : HKU HKEY_CURRENT_CONFIG : HKCC * /v NomEntrée : spécifie le nom de l'entrée à ajouter sous la sous-clé indiquée. * /ve : spécifie que l'entrée qui est ajoutée dans le Registre a une valeur nulle. * /t TypeDonnées : spécifie le type de données pour la valeur de l'entrée. Les valeurs suivantes sont autorisées : Type de valeur Abréviation Valeur chaîne. REG_SZ Valeur de chaîne multiple. REG_MULTI_SZ Valeur de chaîne extensible. REG_EXPAND_SZ Valeur DWORD. REG_DWORD Valeur binaire. REG_BINARY * /s séparateur : spécifie le caractère utilisé pour séparer les instances des données. * d valeur : spécifie la valeur de la nouvelle entrée du Registre. * /f : ajoute la sous-clé ou l'entrée sans demander de confirmation. 2) Afin de comparer deux arborescences du Registre, utilisez cette syntaxe : Reg compare NomClé1 NomClé2 [/v NomEntrée | /ve] {[/oa]|[/od]|[/os]|[on]} [/s] * /v NomEntrée : compare une entrée spécifique sous la sous-clé. * /ve : spécifie que seules les entrées qui n'ont pas de valeur seront comparées. * {[/oa]|[/od]|[/os]|[on]} : spécifie la façon dont sont affichées les différences et les correspondances. Le paramètre par défaut est /od. * /oa : n'affiche que les différences. * /os : n'affiche que les correspondances. * /on : n'affiche ni les différences ni les correspondances. * /s : compare toutes les sous-clés et les entrées. Par exemple, saisissez cette commande : reg compare "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace" "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace" /od /s Seules les différences sont listées.

3) Afin de supprimer une entrée du Registre, utilisez cette syntaxe : reg delete NomEntrée [{/v NomEntrée|/ve|/va}] [/f] * /v NomEntrée : supprime une entrée spécifique présente dans le clé. Si aucune entrée n'est indiquée, toutes les entrées et sous-clés figurant dans la clé seront supprimées. * /ve : spécifie que seules les entrées qui n'ont pas de valeur seront supprimées. * /va : supprime toutes les entrées dans la clé spécifiée sans supprimer les sous-clés. 4) Afin de copier une entrée du Registre : reg copy NomClé1 NomClé2 [/s] [/f] * /s : copie toutes les sous-clés et les entrées sous la clé spécifiée. 5) Afin d'exporter dans un fichier .reg une arborescence du Registre : reg export NomClé NomFichier 6) Afin d'importer à partir d'un fichier .reg une arborescence du Registre : reg import NomFichier 7) Afin de charger ou de décharger une ruche d'utilisateur ou une ruche système : reg load NomClé NomFichier puis reg unload NomClé 8) Afin d'afficher une arborescence du Registre : reg query NomClé [{/v NomEntrée|/ve}] [/s] 9) Afin de sauvegarder puis de restaurer une arborescence du Registre : reg save NomClé NomFichier puis reg restore NomClé NomFichier Ces deux dernières commandes offrent un intérêt à partir du moment où le fichier de sauvegarde est enregistré avec l'extension .hiv. Soit une clé TEST placée dans HKEY_LOCAL_MACHINE\SOFTWARE sur l'ordinateur local à partir duquel on lance cette série de commandes et un ordinateur distant nommé Ordinateur_distant. Précisons que seules les arborescences HKEY_LOCAL_MACHINE et HKEY_USERS sont accessibles à distance. Nous allons successivement : 1) Ajouter la clé TEST à l'ordinateur distant : reg add "\\ordinateur_distant\HKLM\SOFTWARE\TEST" 2) Comparer le contenu des deux clés sur les deux ordinateurs : reg compare "HKLM\SOFTWARE\TEST" "\\ordinateur_distant\HKLM\SOFTWARE\TEST" 3) Copier la clé TEST vers l'ordinateur distant : reg copy "HKLM\SOFTWARE\TEST" "\\ordinateur_distant\HKLM\SOFTWARE\TEST" /s 4) Supprimer la clé TEST sur l'ordinateur distant : reg delete "\\ordinateur_distant\HKLM\\SOFTWARE\TEST" 5) Sortir sous la forme d'un fichier texte l'arborescence complète de HKLM\SOFTWARE de l'ordinateur distant : reg query "\\ordinateur_distant\HKLM\SOFTWARE" /s > c:\arborescence.txt La manipulation de certaines chaînes de caractères nécessite un petite acrobatie au niveau de la syntaxe. Pour effectivement être inscrits (et donc la valeur correspondante effectivement passée), les guillemets doubles doivent être précédés du signe \ et les pourcentages du caractère ^. Par exemple, ces trois commandes inscrivent dans le Registre et dans l’arborescence HKEY_LOCAL_MACHINE\SOFTWARE : reg add HKLM\Software\Nouveau /v test1 /t REG_SZ /d "%userprofile%" * Une clé nommée Nouveau contenant une valeur chaîne nommée test1 et avec ceci pour données : C:\Documents and Settings\le_nom_de_l’utilisateur_actuellement_connecté reg add HKLM\Software\Nouveau /v test2 /t REG_SZ /d "\"%userprofile%\"" * Une clé nommée Nouveau contenant une valeur chaîne nommée test2 et avec ceci pour données : "C:\Documents and Settings\le_nom_de_l’utilisateur_actuellement_connecté" reg add HKLM\Software\Nouveau /v test3 /t REG_SZ /d "\"%userprofile^%\"" * Une clé nommée Nouveau contenant une valeur chaîne nommée test3 et avec ceci pour données : "%userprofile%" La commande : reg add HKLM\Software\Nouveau /v test4 /t REG_SZ /d %userprofile% renverra un message d’erreur… - Charger une ruche d'utilisateur en utilisant la commande Reg : Cela peut être utile si vous souhaitez créer, par exemple, un fichier .bat vous permettant de modifier le Registre d'un utilisateur appelé Isabelle. 1) Cliquez sur Démarrer/Exécuter, puis saisissez : cmd 2) Saisissez : reg load hku\test "c:\documents and settings\isabelle\ntuser.dat" Nous chargeons donc la ruche d'un profil d'utilisateur appelé Isabelle et qui est placée sur C:\. Nous nous servons de l'abréviation HKU pour HKEY_USERS. Nous donnons à cette ruche temporaire le nom de test. Imaginons que vous souhaitiez paramétrer l'écran de veille pour qu'il se déclenche au bout de 9 minutes : 3) Saisissez : reg add "HKU\test\Control Panel\Desktop" /v ScreenSaveTimeout /d 500 /f La commande reg add permet d'ajouter une sous-clé ou une valeur dans le Registre. Les commutateurs suivants sont utilisés : * Le commutateur /v doit être suivi par le nom de l'entrée que l'on ajoute. * Le commutateur /d indique les valeurs de données. * Le commutateur /f ajoute l'entrée sans demander de confirmation. 4) Une fois les modifications accomplies, déchargez la ruche en saisissant cette commande : reg unload hku\test Chaque fois, un petit message d'encouragement vous indiquera si l'opération s'est bien déroulée. En nous connectant sur le compte d'utilisateur d'Isabelle, nous trouvons bien, dans le Registre, une

valeur chaîne nommée ScreensaveTimeout avec, comme données de la valeur, le nombre 500 (secondes).

Regini
Regini est un outil vous permettant de modifier le Registre Windows en utilisant un script. Le principal avantage réside dans le fait que des modifications importantes peuvent s'opérer de manière complètement automatique. Cet outil fait partie du "Windows Resource Kit Tools". La syntaxe est la suivante : \Registry\Clé [ACL] Nom_Valeur = Type_Valeur Données Le paramètre optionnel ACL vous permet de spécifier la liste de contrôle d'accès. Imaginons ce type de contenu : \Registry\User\S-1-5-21-1482476501-2111687655-854245398-1003\Software Valeur_Test = REG_DWORD 0x00000000 Le fichier peut être enregistré avec une extension .ini. Par exemple, test.ini 1) Cliquez sur Démarrer/Exécuter puis saisissez : cmd 2) En Invite de commandes saisissez : regini test.ini Une valeur DWORD nommée Valeur_Test aura été créée dans HKEY_USERS\S-1-5-21-14824765012111687655-854245398-1003\Software. Vous pouvez créer dans cette même arborescence une clé nommée Test ainsi que la même valeur DWORD en utilisant ces deux commandes : \Registry\User\S-1-5-21-1482476501-2111687655-854245398-1003\Software\test Valeur_Test = REG_DWORD 0x00000000 Signalons que l'extension des fichiers n'a strictement aucune importance du moment qu'ils sont dans un format ANSI. Il vous est possible de continuer une ligne en utilisant le caractère \ Par exemple, le bloc suivant : 12\ 345\ 6789 sera lu de cette façon : 12345679 Voici la convention utilisée afin de désigner les arborescences principales du Registre : HKEY_LOCAL_MACHINE: \Registry\Machine. HKEY_USERS : \Registry\User. HKEY_CURRENT_USER : \Registry\User\SID_Utilisateur Il vous est possible d'utiliser cette syntaxe : USER: Elle sera remplacée par le chemin d'accès complet à l'arborescence racine du profil d'utilisateur actuellement connecté : \Registry\Users\S-x-x-xxxx... On rencontre souvent ce type d'écriture : \Registry\Machine\Software Niveau1a ....Niveau2a ....Niveau2b ........Niveau3a Niveau1b Si l'espacement qui précède une clé est le même que celui de la clé précédente, Regini l'interprète comme étant au même niveau. Si l'espacement est moins important, Regini l'interprète comme étant au niveau supérieur. Voici les conventions utilisées pour spécifier une ACL : R : Lecture - W : Écriture - D : Autorisations spéciales (principalement : Supprimer). 1 : Administrateur - Contrôle total 2 : Administrateur - R 3 : Administrateur - RW 4 : Administrateur - RWD 5 : Créateur propriétaire - Contrôle total 6 : Créateur propriétaire - RW 7 : Tout le monde - Contrôle total 8 : Tout le monde - R 9 : Tout le monde - RW 10 : Tout le monde - RWD 11 : Utilisateurs avec pouvoir - Contrôle total 12 : Utilisateurs avec pouvoir - RW

13 : Utilisateurs avec pouvoir - RWD 14 : Opérateurs système - Contrôle total 15 - Opérateurs système - RW 16 - Opérateurs système - RWD 17 : SYSTEM - Contrôle total 18 : SYSTEM - RW 19 : SYSTEM - R 20 : Administrateurs - RWX Les ACL sont indiquées entre crochets et séparées par une espace. Par exemple : \Registry\User\S-1-5-21-1482476501-2111687655-854245398-1003\Software\test [4 8 17] Si vous accédez aux autorisations de la clé Test vous aurez bien trois comptes qui seront listés : Administrateurs, Tout le monde et SYSTEM possédant respectivement le masque de permissions suivant : * Lecture - Autorisations spéciales * Lecture * Contrôle total - Lecture Les noms des valeurs sont les suivants : REG_SZ : valeur chaîne REG_EXPAND_SZ : valeur de chaîne extensible REG_MULTI_SZ : valeur de chaînes multiples REG_MULTISZFILE = un chemin vers un fichier contenant des chaînes de caractères multiples. Le fichier sera ouvert et son contenu intégré comme données de la valeur. REG_DWORD : Valeur DWORD. 0x : définit une valeur hexadécimale. 0o : définit une valeur octale. 0b : définit une valeur binaire. Vous pouvez utiliser les chaînes On, Yes, ou True, qui seront converties en 0x00000001, et les chaînes Off, No, ou False, qui seront converties en 0x00000000. REG_BINARY : définit une valeur binaire. Le premier nombre décimal sera le nombre d'octets contenus dans la valeur qui suit. Les nombres restants seront convertis en nombres 32 bits. REG_BINARYFILE = un chemin vers un fichier binaire. Le fichier sera ouvert et son contenu intégré comme données de la valeur. La longueur du fichier sera celle de la valeur. DELETE : si ce mot-clé est spécifié comme données de la valeur, l'entrée sera supprimée. Remarque : il est ainsi possible de stocker des données dans un fichier texte afin d'éviter d'avoir à recopier une liste interminable de données. La commande suivante : Utilisateurs = REG_MULTISZFILE \Liste_Utilisateurs.txt intègrent dans la valeur de chaînes multiples nommée Utilisateurs, le contenu du fichier texte "Liste_Utilisateurs.txt". Note : Vous pouvez utiliser un fichier batch pour mapper le chemin UNC de Regini et exécuter ensuite le programme : Net use z: \\Nom_Server\Outils z:\ regini <Nom_Script> Net use z: /delete

Sign up to vote on this title
UsefulNot useful