OVH Cloud OVH Cloud

registre

7 réponses
Avatar
Pierre-e Gougelet
Bonjour,

Comment savoir (quand on est dans un compte user restreint) que l'on a droit ou non d'ecrire dans HKEY_CLASSES_ROOT?

Sans bien sur essayer.

Merci. Pierre.

7 réponses

Avatar
Olivier Huet
Bonjour,


Pierre-e Gougelet a écrit :

Comment savoir (quand on est dans un compte user restreint) que l'on a
droit ou non d'ecrire dans HKEY_CLASSES_ROOT?

Sans bien sur essayer.




Et bien pour savoir si on a la permission d'écrire dans une clef de
registre (ou un fichier), le moyen officiel reste justement d'essayer.

Et sinon, pour avoir plus de chance de réussir à écrire, il faut faire
attention de ne demander que ce que l'on veut faire : genre en ouvrant
la clef, il ne faut pas mettre KEY_ALL_ACCESS mais par exemple KEY_WRITE
(ou KEY_WRITE | KEY_READ).

Et par rapport au compte utilisateur/administrateur, on peut
effectivement voir des choses avec les api de sécurité, mais elles
seraient, pour ce cas de figure, inadaptés - voir inutiles.


Bonne chance,
Olivier Huet
Avatar
Arnaud Debaene
Pierre-e Gougelet wrote:
Bonjour,

Comment savoir (quand on est dans un compte user restreint) que l'on
a droit ou non d'ecrire dans HKEY_CLASSES_ROOT?
Sans bien sur essayer.


C'est la technique recommandée pourtant.
Tu peux toujours essayer GetNamedSecurityInfo, mais ce n'est pas dit que tu
ais les droits pour regarder les droits d'accès sur cet objet ;-)

Arnaud
MVP - VC
Avatar
Pierre-e Gougelet
>>Comment savoir (quand on est dans un compte user restreint) que l'on
a droit ou non d'ecrire dans HKEY_CLASSES_ROOT?
Sans bien sur essayer.



C'est la technique recommandée pourtant.
Tu peux toujours essayer GetNamedSecurityInfo, mais ce n'est pas dit que tu
ais les droits pour regarder les droits d'accès sur cet objet ;-)



Le probleme est que si je fais une ecriture dans HKEY_CLASSES_ROOT, cela me renvoie un ERROR_DENIED, mais la clé est bien ecrite, et surtout après je peux fais n'importe quoi dessus...

Un bug connu?

Pierre.
Avatar
Arnaud Debaene
Pierre-e Gougelet wrote:
Comment savoir (quand on est dans un compte user restreint) que l'on
a droit ou non d'ecrire dans HKEY_CLASSES_ROOT?
Sans bien sur essayer.



C'est la technique recommandée pourtant.
Tu peux toujours essayer GetNamedSecurityInfo, mais ce n'est pas dit
que tu ais les droits pour regarder les droits d'accès sur cet objet ;-)



Le probleme est que si je fais une ecriture dans HKEY_CLASSES_ROOT,
cela me renvoie un ERROR_DENIED, mais la clé est bien ecrite, et
surtout après je peux fais n'importe quoi dessus...
Un bug connu?


Peu probable. Postes ton code...

Arnaud
Avatar
Pierre-e Gougelet
je fais une ecriture dans HKEY_CLASSES_ROOT,
cela me renvoie un ERROR_DENIED, mais la clé est bien ecrite, et
surtout après je peux fais n'importe quoi dessus...
Un bug connu?



Peu probable. Postes ton code...



Non, en fait je me suis trompé, c'est pas exactement ça.

Si j'ecris dans HKEY_CURRENT_USERSoftwareClasses, l'entrée se retrouve (si on vérifie avec regedit) dans HKEY_CLASSES_ROOT

Normal?

Pierre.
Avatar
Jean-Claude BELLAMY
Dans le message news:42808121$0$842$ ,
Pierre-e Gougelet s'est ainsi exprimé:

je fais une ecriture dans HKEY_CLASSES_ROOT,
cela me renvoie un ERROR_DENIED, mais la clé est bien ecrite, et
surtout après je peux fais n'importe quoi dessus...
Un bug connu?



Peu probable. Postes ton code...



Non, en fait je me suis trompé, c'est pas exactement ça.

Si j'ecris dans HKEY_CURRENT_USERSoftwareClasses, l'entrée se
retrouve (si on vérifie avec regedit) dans HKEY_CLASSES_ROOT
Normal?



OUI !
C'est une nouveauté apparue avec W2K, qui autorise une "personnalisation"
des associations de fichiers.

En effet, depuis W2K, il est possible d'éditer SPÉCIFIQUEMENT la branche
HKCUSoftwareClasses, qui vient en "double" et se superpose à
HKLMSOFTWAREClasses.
Je rappelle que
*** par défaut ***
HKCR N'EST PAS une copie de HKLMSOFTWAREClasses
HKCR EST un "alias" de HKLMSOFTWAREClasses
(pour faciliter la tâche de l'utilisateur)

Le passage par l'explorateur (menu Outil/options des dossiers/..) n'affecte
QUE la branche
HKLMSOFTWAREClasses,
et NON PAS
HKCUSoftwareClasses.

Pour modifier HKCUSoftwareClasses, il faut obligatoirement passer par
REGEDIT
(ou un programme quelconque qui modifie la BDR dans HKCUSoftwareClasses)

Si une extension est référencée A LA FOIS dans
HKLMSOFTWAREClasses
et dans
HKCUSoftwareClasses,

ce sont les données contenues dans
HKCUSoftwareClasses
qui prédominent et apparaissent dans HKCR

cf.
http://www.microsoft.com/resources/documentation/Windows/2000/server/reskit/en-us/Default.asp?url=/resources/documentation/windows/2000/server/reskit/en-us/regentry/69673.asp


Donc on peut faire en sorte que chaque utilisateur ait une branche
HKCUSoftwareClasses a lui.

Exemple :
---------
utilisateur A :
HKCUSoftwareClassesHTTPshellopencommand
"C:Program FilesInternet Exploreriexplore.exe" -nohome

HKCUSoftwareClassesmailtoshellopencommand
""C:Program FilesOutlook Expressmsimn.exe" /mailurl:%1"

utilisateur B :
HKCUSoftwareClassesHTTPshellopencommand
""I:Program FilesMozilla Firefoxfirefox.exe""

HKCUSoftwareClassesmailtoshellopencommand
"I:Program Filesthunderbirdthunderbird.exe"


Le navigateur par défaut sera IE chez A et FireFox chez B ...
L'outil de messagerie par défaut sera OE chez A et ThunderBird chez B
....


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*
Avatar
Aurelien REGAT-BARREL
> Si j'ecris dans HKEY_CURRENT_USERSoftwareClasses, l'entrée se retrouve
(si on vérifie avec regedit) dans HKEY_CLASSES_ROOT

Normal?



On en a parlé y'a pas trop longtemps.
http://groups.google.fr/group/fr.comp.os.ms-windows.programmation/browse_thread/thread/3e0136aacb0d411c

--
Aurélien REGAT-BARREL