Creation cle de registre avec des / [Résolu]

- - Dernière réponse :  Olivdev - 11 sept. 2013 à 12:00
Bonjour,
Je cree un petit script afin de verifier la presence d'un prog dans le firewall windows et je n'arrive pas a creer une cle de registre.
En effet, la cle est "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile\AuthorizedApplications\List\"C:\Detection\Process\Motion.exe"", mon probleme est que le script me cree une arborescence de repertoires C:, Detection et Process avant de creer ma cle.
Auriez vous une soluce svp?
Afficher la suite 

2 réponses

Messages postés
26497
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 octobre 2019
316
0
Merci
Bonjour,

La base de registre n'autorise pas l'utilisation du "\" dans le nom de ses arborescences..
Au mieux vous pourriez utiliser le "/".

Par contre je ne comprend pas vraiment l'intérêt d'avoir une arborescence qui porte comme nom le "chemin" d'un fichier.
Pourquoi ne pas mettre ce chemin dans une clé tout simplement ?
0
Merci
Salut,

Ce serait plus simple c'est vrai, mais en fait le but de la manoeuvre est d'ajouter un ou des programmes dans les exceptions du firewall, d'ou le nom de la cle avec des \.
J'ai trouve une solution:

Pour acceder au registre a distance:
Set oReg=GetObject( _
"winmgmts:{impersonationLevel=impersonate}!\\Nom Du Poste\root\default:StdRegProv")
- Les services RDP Call et WMI doivent etre actifs sur la machine distante. -

Cette methode permet de separer le nom de la cle et sa valeur:
oReg.SetstringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue

Un peu plus complexe que obj.RegWrite

Voila, bonne journee.
jordane45
Messages postés
26497
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 octobre 2019
316 -
hello,

et juste pour savoir : Tes variables vallent quoi dans ton cas ?
strKeyPath,= "HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesSharedAccessParametersFirewallPolicyDomainProfileAuthorizedApplicationsList\"

strValueName = ?
,strValue =  ?



Tu as réussi à mettre le "C:\Detection\Process\Motion.exe" dans strValueName ?

Nb: En relisant ton premier post, je viens de voir que tu mettais des Guillement autour du chemin de la clé ET autour de la clé.. . Lorsque tu dois "intégrer" dans une chaine une autre chaine devant contenir des guillemets, il faut, le plus souvent, mixer avec des apostrophes...
exemple:
 'HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesSharedAccessParametersFirewallPolicyDomainProfileAuthorizedApplicationsList\"C:DetectionProcessMotion.exe"', 
Oui j'ai mis
strValueName="C:\Detection\Process\Motion.exe"
strValue="C:\Detection\Process\Motion.exe:*:Enabled:Motion"
(la valeur qui est qd le firewall est actif)
Et tout se met bien dans la base de registres.
Pour les guillemets, j'ai essaye les doubles, les triples, separer la string.. mais je ne pratique plus vb depuis quelques annees alors je ne me souvenais plus de ca, merci pour l'info.
++