Comment puis-je placer ma configuration personnelle Windows sous contrôle de version ?
Résumé (détails et exemples suivent):
- Configuration personnelle (par exemple les préférences du bureau), pas la configuration du système (par exemple les pilotes); devrait fonctionner sans droits d'administrateur
- Contrôle de version, pas de sauvegarde ni de création d'image disque
Voici quelques choses que je veux pouvoir faire:
- Validez l'état actuel de ma configuration dans un référentiel, de préférence avec une certaine granularité (si j'ai apporté deux modifications, j'aimerais pouvoir en valider une sans valider l'autre).
- Écrivez une entrée du journal des modifications chaque fois que je valide et consultez la liste des entrées du journal des modifications pour chaque fichier de configuration.
- Voir les différences entre l'état actuel et une version de référentiel.
- Sortez de mon référentiel sur une nouvelle machine Windows et reproduisez ma configuration (au moins si la nouvelle machine a la même version de Windows).
<added1> Je n'essaierai pas de donner une définition complètement précise de la "configuration"; J'essaie de couvrir toutes sortes de préférences personnelles (par exemple, tout ce qui peut être réglé dans le panneau de configuration sans droits d'administrateur, raccourcis dans mon menu "Programmes" spécifique à l'utilisateur,…). Je ne souhaite pas inclure mes documents ou applications installées. </added1>
<added2> Notez que je cible ma configuration personnelle, pas la configuration système (ce serait utile aussi, mais ce n'est pas le but de cette question). Par exemple, je m'attends à ce qu'une solution fonctionne sans droits d'administrateur. </added1>
Ce que je fais sous Unix, c'est de mettre (une sélection de) mes fichiers dot sous contrôle de version . Sous Windows, je suppose que je devrais valider le registre et certains fichiers (lesquels?) Sous Application Data
. Je voudrais quelque chose de mieux que de placer l'ensemble du fichier de registre sous contrôle de version (ce n'est pas assez de granularité et je crains des problèmes de verrouillage). <added1> Idéalement, j'utiliserais des wrappers ou des scripts avec certains logiciels de contrôle de version courants (Bazaar, CVS, Darcs, Git, Mercurial, Subversion,…), mais ce n'est pas une exigence absolue. </added1>
J'ai actuellement besoin de travailler avec Windows 2000 et Windows XP. Puisque c'est pour une machine de travail, le payware ne fera pas l'affaire (l'open source serait l'idéal). Je suis plus à l'aise avec la ligne de commande qu'avec les interfaces graphiques.
<added1> Voici un exemple de workflow:
- Un jour, je décide que je veux que mon fond d'écran soit rose. Je fais donc le changement via l'interface graphique. Cela modifie une
ligne dans uneclé defichier de configurationdans le Registre. J'engage ensuite le changement, pour le suivre. - Plus tard, je me demande pourquoi mon fond d'écran est rose. Je recherche donc «couleur du bureau» dans le changelog.
- Un jour, je dois utiliser une nouvelle machine. Je vérifie donc à partir de mon référentiel de configuration, et voilà, le bureau rose.
Voici certaines choses que je n'essaie pas de faire:
Je n'essaye pas de faire des sauvegardes. Je veux pouvoir suivre les changements (par sémantique, ou du moins par syntaxe, pas seulement par date), et partager des informations entre machines (un référentiel, plusieurs extractions).
Je n'essaie pas de répliquer une installation Windows. Je ne veux pas reporter les dépendances matérielles, les applications installées ou les documents.
</added1>
la source
Réponses:
Pour autant que je sache, la configuration de Windows est trop dispersée pour une sauvegarde fiable, parmi trop de fichiers et de places dans le registre.
Il est impossible de sauvegarder le registre sur une machine et de le restaurer sur une autre (ou même sur la même), car trop de clés sont trop spécifiques à la machine et parce que certaines clés sont protégées par Windows.
La restauration du système vise à conserver l'état de la machine, mais pour votre objectif, elle n'est pas fiable, car elle décidera elle-même des sauvegardes à supprimer pour économiser de l'espace et présente d'autres problèmes négatifs tels que la non-disponibilité dans Windows 2000.
La seule solution universelle que je peux voir est d'imaginer le disque système dans son intégralité et de le restaurer si nécessaire, à l'aide d'un produit d'imagerie de disque.
Il existe plusieurs produits d'imagerie de disque de très bonne qualité, que je peux recommander si vous trouvez que cette solution vous intéresse. Plusieurs d'entre eux conservent un référentiel d'images descriptif. Bien que les meilleurs soient commerciaux, ceux gratuits sont toujours très bons.
L'imagerie de disque fonctionne mieux lorsque le lecteur système ne contient pas de données utilisateur.
la source
Venant du côté serveur de la clôture, où vous vous attendriez à ce que nous soyons très paranoïaques à propos des changements de configuration et d'où ils viennent, je peux dire qu'ils n'existent pas vraiment. Le suivi de la configuration globale est un processus entièrement manuel pour la plupart. Il est possible de surveiller (mais pas d' empêcher ) des zones de registre spécifiques pour les changements, mais je ne connais pas de progiciels gratuits / bon marché qui permettent cela et plusieurs très coûteux (c'est un problème beaucoup plus complexe que le suivi des informations sur les fichiers, puis deux différences fichiers texte; donc coûteux).
Cela rend les administrateurs Unix fous. Il y a quelques semaines, Kyle Brandt , administrateur système de StackOverflow Inc, critiquait ce genre de chose alors qu'il préparait un nouveau lot de machines Windows pour StackExchange. Le crossover Linux / Windows SysAdmins a tous compati avec lui. Il n'y a tout simplement pas d'équivalent Windows de mettre / etc sous VCS. Il y a quelques trucs laids, comme l'imagerie de disque / snapshot ou forcer uniquement les modifications de configuration via les stratégies de groupe (et suivre les modifications des GPO manuellement), mais rien d'aussi élégant.
Désolé.
la source
Personnellement, je fais le suivi des modifications dans le registre Windows avec Regshot . Vous prenez un instantané avant le changement puis un deuxième après l'avoir fait. Vous pouvez également obtenir un joli rapport HTML des modifications. Bien sûr, vous devez vous assurer que seuls quelques changements sont effectués entre les instantanés si vous voulez comprendre ce que chaque changement fait. Regshot est un programme open source.
Si vous recherchez le suivi / la sauvegarde des modifications du système de fichiers, le plus proche est probablement DocShield . Vous pouvez suivre n'importe quel dossier avec lui, bien que les données d'application soient probablement votre meilleure estimation des modifications de vos préférences personnelles de la plupart des logiciels compatibles avec les profils d'utilisateurs Windows. DocShield est gratuit pour les utilisateurs à domicile. Vous pouvez imiter ce qu'il fait en utilisant
xcopy /d:{m-d-y}
les dossiers dont vous avez besoin, puis compresser / 7z la sortie.Ajoutez ensuite la sortie des deux sauvegardes à n'importe quel référentiel de contrôle de version avec vos remarques.
la source
reg.exe
et Cygwinregtool
ne feraient pas? Quant à DocShield, que fait un logiciel de contrôle de version qui ne fera pas mieux?Ce ne serait pas simple, mais vous pouvez utiliser Sysinternals Process Monitor pour déterminer quels fichiers et paramètres de registre ont été modifiés. Vous pouvez ensuite ajouter les modifications du registre et les fichiers mis à jour dans un programme plus grand qui apportera les modifications pour vous. Vous pourriez probablement utiliser Power Shell ou quelque chose comme AutoIt. Vérifiez ensuite le script résultant dans vos vcs. J'utilise une méthode similaire pour automatiser des paramètres étranges dans des scripts de connexion et des modèles d'administration de stratégie de groupe personnalisés.
la source
Application Data
contenu, non? Comment détecter les modifications apportées lorsque le programme du moniteur ne fonctionne pas pour une raison quelconque? Existe-t-il un moyen raisonnable d'étendre le flux de travail pour activer les opérations de mise à jour (c'est-à-dire que j'ai déjà effectué un paiement et que je souhaite appliquer quelques modifications supplémentaires sur une autre machine)?Je n'ai pas de solution OS pour vous, mais il y a une possibilité payante. Ce que vous pourriez faire, c'est de sauvegarder votre disque en utilisant DriveImage XML
Le format de sauvegarde est XML. Vous pouvez ensuite enregistrer ce fichier xml (des différences sont également possibles) sur votre système de contrôle de version préféré.
Comme l' a dit HarryMC , vous ne pouvez pas vraiment utiliser cette image pour apporter des modifications à un nouveau système, mais vous pouvez certainement utiliser l'image sur un nouveau système avec exactement le même matériel.
la source
Vous pouvez utiliser le logiciel de gestion de profil de ForensiT pour copier l'intégralité de votre profil en démarrant une boîte Windows. Cliquez ici pour le vérifier: Gestionnaire de profil utilisateur
la source
Il me semble que vous décrivez une application de base de données où vous suivez les clés de registre et les indexez par une balise. Bien que je ne sois pas assez technique avec les clés de registre pour le faire, dans votre exemple, vous voulez rechercher Pink Desk top dans la base de données et obtenir les instructions qui implémenteront cette modification sur un autre ordinateur. Autrement dit, si je comprends vos intentions
la source