Recupération valeurs registre

cs_inuktikut Messages postés 4 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 14 août 2008 - 8 mars 2007 à 18:12
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 - 9 mars 2007 à 00:15
Bonjour,
Je voudrais savoir si il existe un script qui me permettrait de récupérer à distance des valeurs dans des clés de registre (dont je connais le chemin) sur plusieurs PC (voir même tous les PC) et mettre ça dans un fichier texte ou autre ?
En résumé, je lance un .vbs (par ex, car je n'ai rien pour compiler) et ensuite je consulte un .txt qui me liste comme ci-dessous: (par ex)
ORDINATEUR1
(valeur de la clé= HKLM\Software\TheProgram\dossier1\sousdossier2\) clé SERIALNUMBER= xxxxxxxxxxx
(valeur de la clé= HKLM\Software\TheProgram\dossier1\sousdossier2\) clé ACTIVATIONKEY= xxxxxxxxxxx
(valeur de la clé= HKLM\Software\TheProgram\dossier1\sousdossier2\) clé VERSION= xxxxxxxxxxx
etc....
ORDINATEUR2
(valeur de la clé= HKLM\Software\TheProgram\dossier1\sousdossier2\) clé SERIALNUMBER= xxxxxxxxxxx

(valeur de la clé= HKLM\Software\TheProgram\dossier1\sousdossier2\) clé ACTIVATIONKEY= xxxxxxxxxxx

(valeur de la clé= HKLM\Software\TheProgram\dossier1\sousdossier2\) clé VERSION= xxxxxxxxxxx

etc....
ORDINATEUR3
(valeur de la clé= HKLM\Software\TheProgram\dossier1\sousdossier2\) clé SERIALNUMBER= xxxxxxxxxxx

(valeur de la clé= HKLM\Software\TheProgram\dossier1\sousdossier2\) clé ACTIVATIONKEY= xxxxxxxxxxx

(valeur de la clé= HKLM\Software\TheProgram\dossier1\sousdossier2\) clé VERSION= xxxxxxxxxxx

etc....

Je suis aussi preneur sur des liens, des tutoriels, des bouquins pour apprendre le VBS par exe, ou tout autre prog qui me permettrait de me lancer la-dedans !
Merci d'avance

3 réponses

ad vitam aeternam Messages postés 17 Date d'inscription jeudi 19 mai 2005 Statut Membre Dernière intervention 10 mars 2008
8 mars 2007 à 18:47
Salut Inuktikut!

Ok voici peut-être une partier de la réponse à ce que tu cherches; c'est une API:

Fonction RegQueryValueEx

Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" ( _
                 ByVal hKey As Long, _
                 ByVal lpValueName As String, _
                 ByVal lpReserved As Long, _
                 lpType As Long, _
                 lpData As Any, _
                 lpcbData As Long)As Long
Versions :
. Windows 95/98 : Oui
. Windows NT : A partir de 3.1
. Windows 2000/XP : Oui






Description :

Cette fonction est à utiliser pour récuperer la valeur d'une clé que l'on aura ouvert ou crée au préalable.
hKey est le handle retourné par la fonction d'ouverture ou de création.
lpValueName est le nom de la valeur que l'on veut récuperer. Pour les valeurs "(Défaut)" il faut donner une chaîne vide en paramêtre.
lpReserved, réservé, à mettre à 0.
lpType stocke le type de donnée qui sera récupéré. Les valeurs possibles sont données dans le tableau ci-dessous.
lpData est la variable dans laquelle sera retournée la valeur lue (initialisation du buffer avant appel à la fonction...).
lpcbData est la longueur du buffer lpData.
Après execution, la fonction retourne la longueur réelle de la variable lpData.




<center>
Constante,
Valeur,
Définition,

----

REG_NONE,
0,
Non défini.,

----

REG_SZ,
1,
Chaîne terminée par un caractère nul.,

----

REG_BINARY,
3,
Valeur binaire.,

----

REG_DWORD,
4,
Mot sur 4 octets.,

----

REG_DWORD_BIG_ENDIAN,
5,
Mot sur 4 octets dont le poids fort est à l'adresse inférieure.,

----

REG_LINK,
6,
Définition d'un lien.,

----

REG_MULTI_SZ,
7,
Ensemble de chaînes terminées par un caractère nul. La fin est signalée par deux caractères nuls.

</center>



Alors maintenant comment ouvrir cette fameuse clé? L'API RegOpenKey; après manipulation n'oublie pas de la refermer avec RegCloseKey.

Pour tous tes problèmes relatifs aux API je te conseille l'excellent site:
http://docvb.free.fr/api.php

Pour ce qui est du code dans ton texte;

Après avori déclaré dans un module tes API (avec la clé Public). tu appelle leurs fonctions à l'endroit voulu dans ton programme (par exemple dans l'événement form_load ou autre). Tu ouvre la clé (RegOpenKey) tu lis sa valuer dans un variable tu met cette valeur dans un fichier texte. (Open file #1 as Input File) tu écris ta clé dedans (print #1 "Ordiateur1" & maclé) puis tu ferme la clé avec RegCloseKey et tu boucles pour recommencer pour tous tes ordinateurs.

Je sais; je dois bien le reconnaître, je ne suis pas vraiment clair mais je ne me souvient pas des lignes exactes de commandes et je n'ai guère le temps de les chercher (je suis sur un ordinateur public) aussi excuse moi! Celà dis il ne me semble pas particulièrement difficile de les trouvers! :)

Bonne continuation
En espérant t'avoir dégrossit la recherche
ad vitam aeternam
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
8 mars 2007 à 20:37
 Bonsoir,

si vous voulez parcourir x servers en vbs, il vous faudra utiliser wmi et wbem et RegRead pour les clés.
un petit exemple suite à un ancien topic.
En mettant les serveurs et les clés dans un tableau ou dictionary + parcours base, fichier...
 pour les users/pssw, c'est "aisément" réalisable.

jean-marc
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
9 mars 2007 à 00:15
Salut

sinon en version 2005 suffit de prendre OpenRemoteBaseKey et de mettre l'IP ou l'hostname

Cordialement

http://www.troxsa.info/
Le site qui ne parle qu'un seul langage, visual basic 2005
0
Rejoignez-nous