Explorer les bases de registres (VBS)
Avant toutes choses, ATTENTION, la manipulation des bases de registres est une opération à haut risque. Une erreur risque de compromettre gravement le bon fonctionnement de votre ordinateur.
Avant toute éventuelle modification de la base, enregistrez ou notez soigneusement la configuration initiale !
Le petit script proposé
- effectue l'enregistrement de la base de registres complète dans un fichier texte
- ou compare l'état de la base de registre avec un enregistrement réalisé antérieurement.
Il peut être utilisé pour sauvegarder la base de registres, ou bien pour rechercher les clés associées à un paramètre donné, par exemple la résolution de l'écran ou le répertoire par défaut de power point...
Il suffit pour cela de lancer une première fois le script pour sauvegarder la base de registres, de modifier le répertoire par défaut de power point puis de relancer le script qui signalera les clés dont la valeur a été modifiée.
(Seule contrainte, la base de registre est très vaste, l'opération est un peu longue).
Le principe du script est basé sur l'utilisation de la commande DOS "REGEDIT" qui permet d'extraire des informations de la base de registres :
Les deux lignes suivantes en VBS permettent d'envoyer dans un fichier texte la totalité de la base de registres :
Set Sh = WScript.CreateObject("WScript.Shell")
sh.Run "%comspec% /c REGEDIT /E c:\svg_registres.txt",0,true
Si vous inscrivez REGEDIT dans un fichier DOS, l'executable Regedit.exe est lancé et l'éditeur de bases de registres apparait.
Si vous inscrivez REGEDIT /E c:\rien.txt, l'ensemble de la base de registres est exportée (paramètre /E) vers le fichier rien.txt.
Pour n'exporter qu'une partie de la base, il suffit d'inscrire le nom du groupe de clés en paramètre. La ligne :
REGEDIT /E c:\rien.txt "HKEY_CURRENT_USER"
recopie dans rien.txt toute les clés de HKCU.
On peut aisément lancer cette commance DOS à partir d'un script VBS en utilisant COMMAND.COM, qui peut être lancé par Sh.Run "C:\windows\command.com" (Sh étant l'objet Shell).
Pour éviter les problèmes de compatibilité (command.com n'est pas toujours placé dans c:\windows), il est préfétable d'utiliser l'adresse de command.com qui est stockée dans la variable DOS : %comspec%.
Run "%compsec% commandeDOS va donc lancer notre commande DOS.
L'ajout d'un paramètre /C entraine la fermeture de la page DOS une fois son office rempli :
sh.Run "%comspec% /c REGEDIT /E c:\svg_registres.txt"
ou mieux :
Set Sh = WScript.CreateObject("WScript.Shell")
sh.Run "%comspec% /c REGEDIT /E c:\svg_registres.txt",0,true
Le paramètre 0 permet de masquer le processus
le paramètre True indique que le script doit attendre l'execution de la commande avant de poursuivre (en fait, l'execution de Command.com, pas forcément celle de regedit !).
On aurait pu limiter l'export à une partie de la base en écrivant :
Set Sh = WScript.CreateObject("WScript.Shell")
sh.Run "%comspec% /c REGEDIT /E c:\svg_registres.txt ""HKEY_CURRENT_USER""",0,true
(Notez que les guillemets entourant l'adresse des clés ont été remplacés par des doubles guillemets).
Cliquez ici pour accéder au Script "bases_reg.vbs" (attention, c'est très long !)
Cliquez ici pour accéder au texte du script
Cliquez ici pour accéder au Script zippé
Voir aussi l'édition et la modification des bases de registres sous VBA dans Excel
Et la lecture et la modification de clés de la bases de registres