Création d'un .reg

Création d'un .reg - Windows & Software

Marsh Posté le 30-03-2002 à 12:30:46    

Je voudrais modifier la donnée d'une cles dans la base de registre.
Le probleme esdt que cette cles n'est pas dans le meme emplacement celon les machines.Mais elle porte toujours la meme valeur.
Ma question est la suivante.
comment créer un .reg qui recherche dans le registre la valeur et qui puisse changer la donnée de cette valeur.
Merci.  :hello:

Reply

Marsh Posté le 30-03-2002 à 12:30:46   

Reply

Marsh Posté le 30-03-2002 à 12:33:46    

kenses a écrit a écrit :

Je voudrais modifier la donnée d'une cles dans la base de registre.
Le probleme esdt que cette cles n'est pas dans le meme emplacement celon les machines.Mais elle porte toujours la meme valeur.
Ma question est la suivante.
comment créer un .reg qui recherche dans le registre la valeur et qui puisse changer la donnée de cette valeur.
Merci.  :hello:  




 
une registry key fonctionne par branches (chemin)... tu pourras pas faire ce que tu demandes, si cela était possible ça serait trop dangereux (au mieux une key mal placée, au pire ta bdr de foutue)

Reply

Marsh Posté le 30-03-2002 à 12:57:40    

oui c'est bizarre que ça ne soit pas toujours au même emplacement...
c'est pour quel log ?

Reply

Marsh Posté le 30-03-2002 à 13:16:52    

blueteen a écrit a écrit :

oui c'est bizarre que ça ne soit pas toujours au même emplacement...
c'est pour quel log ?  




 
j'avait pas tilté de la même manière que toi ...
 
 
à mon avis si l'emplacement diffère c'est qu'il y a des OS différents, ou alors une version du log différente :??:

Reply

Marsh Posté le 30-03-2002 à 14:20:02    

c'est pour modifier le chemin d'acces du carnet d'adresse dans outlook.
Le répertoire change en fonction du nom de l'utilisateur.
Je voudrais faire cela soit à l'aide d'un VBS soit en vb ou le .reg

 

[jfdsdjhfuetppo]--Message édité par kenses--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 30-03-2002 à 14:55:59    

kenses a écrit a écrit :

c'est pour modifier le chemin d'acces du carnet d'adresse dans outlook.
Le répertoire change en fonction du nom de l'utilisateur.
Je voudrais faire cela soit à l'aide d'un VBS soit en vb ou le .reg  
 
 




 
ça se présente comment?
envoie les lignes ici path et reg que tu veux obtenir

Reply

Marsh Posté le 30-03-2002 à 15:10:11    

kenses a écrit a écrit :

c'est pour modifier le chemin d'acces du carnet d'adresse dans outlook.
Le répertoire change en fonction du nom de l'utilisateur.
Je voudrais faire cela soit à l'aide d'un VBS soit en vb ou le .reg  




 
Avec VBScript tu peux effectivement le faire.
 
Dans ton cas il s'agit de lire une variable d'environnement, le nom d'utilisateur et de modifier la clef en conséquence.
 
Je vias chercher dans un bouquin et je te dis

Reply

Marsh Posté le 30-03-2002 à 15:22:51    

OK pour lire la registry, par exemple :
 

Code :
  1. Set ws = WScript.CreateObject("WScript.Shell" )
  2. strValue = ws.RegRead("HKLM\SYSTEM\CurrentControlSet\Services\WINS\Parameters\DbFileNm" )


 
Le valeur est dans strValue. Pour modifier ou écrire dans la registry, par exemple il faut utiliser la méthode ws.RegWrite([clef], [valeur], [type])
 
Type peut prendre les valeurs suivantes :
- REG_SZ (chaîne de caractères)
- REG_EXPAND_SZ ("répertoire" )
- REG_DWORD (4 octets, valeur hexa)
- REG_BINARY (binaire)
 
Pour obtenir ta varaible d'environnement, tu peux utiliser par exemple :

Code :
  1. Set WshShell = WScript.CreateObject("WScript.Shell" )
  2. strUsername = WshShell.ExpandEnrionmentsString("%USERNAME%" )


 
Tu as le nom de l'utilisateur dans strUsername

Reply

Marsh Posté le 30-03-2002 à 15:38:55    

Oui mais enfaite j'ai du mal m'exprimer car lorsque je dis "le repertoire change en fonction du nom d'utilisateur". Et bien c'est faut.
 
Enfaite mon probleme est comme ca  
j'ai plusieur poste qui utilise outlook pour la messagerie interne.
Elles utilisent un carnet d'adresse situé sur un serveur X.
Moi j'ai changé le lieu du carnet d'adresse. Dans notre cas on va dire que le carnet est maintenant sur le serveur Y.
 
Maintenant les postes Win9x et 2k de mon réseau stocks le parametres du chemin du carnet d'adresse dans la cles "hketcarent\soft\Microsoft\Windows messen...\
et apres la suite change en fonction du poste.
Mais elle porte toujours la meme valeur.
 
Donc je pense qu'il me faut un script qui recherche dans la base de registre le chemin "serveurX" et qui le remplace par le chemin "serveur Y". c'est possible :??:  
 
 
Voila j'esperes que je m'exprime dorrectement.
 
et merci encore pour vos recherche ;)
ps : si vous connaissez des bons site pour le vbs (pour apprendre) :sol:

 

[jfdsdjhfuetppo]--Message édité par kenses--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 30-03-2002 à 16:38:40    

De quoi peux-tu déduire le chemin de ta clef ? Si il s'agit du nom du poste c'est la variable environnement %COMPUTERNAME%
 
Alors bon poste un véritable exemple et ensuite on verra... car la c'est encore moins clair.

Reply

Marsh Posté le 30-03-2002 à 16:38:40   

Reply

Marsh Posté le 30-03-2002 à 17:46:31    

Voila la cles en question sur un XP
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\1ad9f2d4976c7c4db21b6d44e0b7b5a8
 
Mais sur un autre poste (98) j'obtiens ca
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\à partir d'ica ca change voire meme à partir de profiles .
Par contre la valeur chaine ne change pas c'est toujours
001e6600 avec la donnée "c:\mailbox.pab"
Moi c'est cette donnée que je veux changer.
Voila :hello:  :(

 

[jfdsdjhfuetppo]--Message édité par kenses--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 31-03-2002 à 01:06:35    

L'objet Shell possède trois méthode RegDelete(), RegWrite(), RegRead() ... donc rien qui ne permette de fouiner dans la registry.
 
Une solution consisterait à programmer un objet COM (peut-etre qu'il en existe déjà, même sûrement) pour rechercher à travers la registry, car la il n'y a vraiment rien de probant.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed