Articles - Logiciel & scripts

Importer les sessions de PortaPutty vers le registre (script Perl)

  |   2298  |  Commentaires (6)  |  Logiciel & scripts
Petit cas rencontré au travail. Nous utilisons de temps en temps PuTTY pour administrer des serveurs en SSH depuis des postes Windows. Seulement il y a quelques années (2010) j'ai récupéré un poste sur lequel est installé "PortaPuTTY" et je l'ai utilisé comme tel au début. Mais en fait il existe deux logiciels PuTTY, le normal officiel classique et un modifié qui est dénommé "PortaPuTTY". Le second, comme son nom l'indique, est un PuTTY portable, abandonné depuis par son auteur. La différence entre les deux est simple : le PuTTY classique enregistre les sessions et leurs paramètres dans la base de registre Windows. Base de registre qui n'est pas nomade ou portable elle fait partie de Windows. Même si cela reste exportable/importable à la main.



Le second enregistre les sessions dans des fichiers texte plats à coté du .exe. De ce fait on "emporte" les sessions avec son PortaPuTTY.



Sauf que les logiciels comme SuperPuTTY ou encore MobaXTerm ne permettent pas d'importer les sessions depuis ces fameux fichiers texte plats générés par PortaPuTTY, ils vont tous rechercher en base de registre.

Exemple avec MobaXTerm :





Exemple avec SuperPuTTY :




Je ne voulais pas tout resaisir à la main et comme le problème peut se poser ailleurs j'ai créé un script Perl qui se nomme portaputty2registry.pl, testé fonctionnel avec Perl en version 5.8 (c'est vieux !). Le but du script est de scanner les fichiers d'un dossier de sessions PortaPuTTY, de récupérer tous les paramètres des sessions des fichiers et de créer un un fichier .reg à importer directement dans la base de registre. Le hic étant que les valeurs sont en décimal coté PortaPuTTY et en héxadécimal (dword) dans un fichier .reg. Sauf que bien évidemment certaines valeurs sont des chaines de caractère à ne pas convertir (à laisser tel quel). Le script se charge de cela.

Coller le script Perl dans le dossier des sessions (vous pouvez aussi le mettre ailleurs comme le bureau, le script est interactif si aucun paramètre n'est donné en ligne de commande) :



Ouvrir une invite de commande dans ce dossier :



Lancer le script :



Je réponds 'oui' ici :



Le traitement des fichiers trouvés est terminé :



Le fichier .reg est bien présent et valide dans sa structure :




Il ne reste plus qu'à l'importer :




Un petit tour avec regedit.exe pour vérifier cela :



All is alright. Maintenant reste à importer les données.