Authorisations sur clef de registre..

lucky hal Messages postés 22 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 4 février 2008 - 2 juil. 2007 à 11:55
lucky hal Messages postés 22 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 4 février 2008 - 9 juil. 2007 à 09:29
Bonjour a tous...
Voila mon problème, j'ai fais une application en VB2005 express, elle marche super mais dès que je l'installe sur un poste où le USER n'est pas admin local, j'ai des séries de problèmes qui arive, cela vient du fait que je doit lire et ecrire dans la BDR dans local machine...
Pour faire ca j'utilise my.computer.registry.localmachine.. mais comme un simple user n'as pas accès a l'ecriture et parfois a la lecture de certaine clef, j'ai besoin de changer certaine autorisation au niveau du registre, je sais le faire depuis windows, mais je n'y arrive pas en VB quelqu'un aurait il une idée voir même une solution svp ? 
Exemple :
Je dois ajouter le contrôle total au groupe utilisateurs de la machine sur la clef HKEY_LOCAL_MACHINE\SOFTWARE\Nom_societé\nom_soft\ et toutes les sous clefs en dessous...

13 réponses

jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 juil. 2007 à 12:18
Tu ne peux (ni ne dois) bien évidemment faire celà qu'avec l'accord de l'administrateur ... Il a SES raisons !
Aucun administrateur n'aimerait, par ailleurs, qu'une appli soit installée à son insu.
Il te suffit (et celà correspopondra à la seule éthique acceptable) de demander à l'administrateur de te "Logger" sur son compte pour installer ton produit.
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
2 juil. 2007 à 12:36
Il faut utiliser un fichier .manifest pour se donner les droits (c'est la méthode que j'utilise pour Vista) => regarde ClickOnce et coche "cette application ... confiance totale"
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
2 juil. 2007 à 12:37
et sache que le registre doit être utilisé le moins possible ... (raison de sécurité mais également de compatibilité avec les futures editions de Windows ...)

(utilise My.Settings à la place si possible)
0
lucky hal Messages postés 22 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 4 février 2008
2 juil. 2007 à 14:34
Merci de vos réponses rapide...
Alors je suis administrateur, donc quand je déploi mon appli, je peut mettre les droits sur les clef, le soucis c'est que c'est une appli sur des postes de production qui sont dans plusieurs pays, donc je ne peux pas les installer moi même...
Et ce n'est pas qu'a l'installation où j'ai besoin de ces clefs, je vais essayer d'être un peu plus précis :
Les postes ne sont pas dédiés a une personne mais a un groupe et chaque personne se logue sur la machine avec son loggin personnel, j'ai donc jusqu'a 50 "comptes" dans doc and settings, mon appli a besoin de desenregistrer des dll et d'en enregistrer d'autre, je dois donc ecrire dans le registre celles que j'enregistre pour que qu'a l'utilisation suivante je puisse les desenregistrer et enregistre les nouvelles (Je ne peut pas savoir desquelles je vais avoir besoin car j'ai 6 jeux de 2 dll qui peuvent être enregistrer)...Je ne peux evidament pas toucher a ces dll car elles sont a un soft externe que mon soft doit piloter...
En fait quand j'installe le soft , je n'ai pas de problèmes car je suis administrateur (moi ou la personne qui l'installe) mais c'est pour les utilisateurs par la suite...
Pour le .manisfest, j'ai essayer mais ca ne donne rien car comme l'appli est en local, elle est deja dans le groupe confiance totale...
Le seul moyen que j'ai trouver c'est de changer les droits sur les clefs particulière dont j'ai besoin pour que les users ai le droit d'y lire et d'y ecrire, le seul moment ou je peux le faire, c'est a l'installation car sinon les users (qui ne sont pas admins) ne peuvent pas y toucher...
J'ai commencer a regarder avec RegistryPermision mais je ne peux pas spécifier de groupe d'utilisateurs...
Voila si je resume, il me faut trouver un moyen a l'installation de mon appli d'authoriser des groupes d'utilisateurs a lire/écrire certaines clefs de registre de la même manière que ce que l'on fait pour les fichiers.
Merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
2 juil. 2007 à 14:38
sinon pour enregistrer tes dlls, utilise RegSrv32 (je me souviens plus du nom exact : est-ce que c'est ça ??) ça arrangera peut-être le problème ... (vu que tu le feras pas toi même)
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 juil. 2007 à 15:19
Je répète : l'administrateur d'un système est et doit en rester l'administrateur.
S'il souhaite que ton appli soit installée, il l'installe lui-même.
S'il ne le souhaite pas : il ne permet pas son installation, surtout si elle modifie la base de registre.

Je vois mal dans quelles circonstances une application devrait pouvoir être installée à l'insu de l'administrateur.
0
lucky hal Messages postés 22 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 4 février 2008
2 juil. 2007 à 15:51
Re bonjour...
J'ai du mal m'expliquer...
Je SUIS administrateur du systeme, l'appli doit juste etre deployer sur des sites géographique ou je ne peux malheureusement pas aller (Argentine, Maroc...) donc c'est des correspndants informatiques sur place qui vont le faire...Donc aucunes installation a l'inssu de qui que ce soit, de plus ce n'est pas vraiment l'installation qui pose soucis mais juste a l'utilisation par les utilisateurs Lambda que je ne veux pas mettre admin locaux des machines....
Alors mon problème est le suivant....
Dans mon appli a un moment en fonction des choix utilisateur, j'utilise regsrv32 pour enregistrer des dll qui sont utiliser par un autre soft que mon appli pilote...A chaque nouvelle utilisation de mon appli, je dois desenregistrer les dll en question (regsrv /u) et enregistrer les nouvelles, sauf que j'ai 6 jeux de 2 dll et que je ne peux savoir a moins de l'enregistrer quelles dll ont été utliser dans la séssion d'avant donc pour que tous les utilisateurs puissent partager ces infos, je suis passer par la BDR...
Quand j'ai fait mes tests, aucuns problèmes mais je n'avais pas penser que les simples utilisateurs ne peuvent pas ecrire dans les clefs de registres de local machine, d'où ma question, comment donner les droits a un groupe d'écrire dans ces clef par code? Dans windows, il suffit d'ouvrir le regedit, d'aller sur la clef et dans les authorisations de définir que le groupe y a accès en lecture/ecriture...Ce n'es pas un problème pour l'admin car je me suis demander et je me suis accorder le droit de le faire mais la question c'est comment faire ca a l'installation ?
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
2 juil. 2007 à 15:59
tu utilises un installateur précis ?

sinon défini un "My.Settings" : exemple IsInstall = false par défaut :

' au tout début...
If My.Settings.IsInstall = false then
    ' enregistre tes DLLs etc
End if
' suite du programme
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 juil. 2007 à 16:14
Pardonne-moi,  Lucky Hal

Je suis on ne peut plus habitué à ce genre de problème et à la présence de correspondants informatiques.
Je crois même pouvoir dire dsans la moindre hésitation qu'il n'existe pas au monde une seule boîte plus à même d'être confrontée à ce genre de problème que la "boîte" (si l'on peut appeler la chose ainsi, pour laquelle j'ai travaillé pendant juste un peu plus de 4 décennies).

Alors (et c'est simple) : ou la maintenance se fait à distance et( tu es l'adminiustrateur de la machine d'accueil....
ou la maintenance se fait par intervention sur place et ton correspondant informatique doit être désigné comme administrateur.de la machine d'accueil.

Il existe enfin d'autres méthodes (que tu devrais normalement bien connaître... et si tu veux éviter que le correspondant informatique ne soit "en permanence l'administrateur... pour faire en sorte qu'il ne soit administrateur que lors de l'installation de ton produit signé).


Bref...
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
2 juil. 2007 à 16:26
Salut,

regsvr32, c'est une appli, donc quand ça tourne, ça fait un processus. Wouah, je me suis cassé le cerveau là...

Donc il faut donner à ce processus le droit d'écrire dans le registre...
Par qui ? Bin un executable.
Comment ? Bin ça doit pouvoir se faire avec CreateProcessWithLogon.

Problème, ton mot de passe administrateur serat dans l'exe distribué, et même si tu le crypte, un type qui touche un peu pourra avoir ton mot de passe (Vu que tu lui fournis le code de décryptage.) Sans compter un hook de la routine...

L'installeur que tu utilises gère pas les droits ? Ca peut être mieux sécurisé.
0
lucky hal Messages postés 22 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 4 février 2008
3 juil. 2007 à 10:34
Bonjour a tous et encore merci de vous interesser a mon problème..
Après plusieurs tests, il s'avère que regsrv32 n'a pas besoin de droits admin...
Par contre pour mémoriser mes noms de dll dans le registre dans local_machine, pour mettre a jour des variables systèmes, j'ai besoin que les droits des clefs de registre volatile environnement et local_machine\nom_societe\nom_soft soit en lecture ecriture...
Mon installeur est très simple, c'est winace...donc pas de droit gerer par cet installeur...
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
3 juil. 2007 à 11:16
ah ok : y'a 1 solution possible : tu peux changer d'installateur lol

(pour regsvr32 oui il n'a pas besoin des droits admin c'est pour ça que je parlais de ça ...)
0
lucky hal Messages postés 22 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 4 février 2008
9 juil. 2007 à 09:29
Bonjour,
Changer d'installeur ne va pas vraiment resoudre mon problème...
J'ai bien penser à mémoriser les dll utilisés dans un fichiers texte mais cela ne resoud pas le problème des clefs volatile environement(qui correspondent aux droits sur les variables d'environnment système) ni sur la clef que je creer pour gérer les licence du soft...
En bref, j'ai bien retourner le problème dans tous les sens depuis mon dernier message et j'ai effectivement besoin de changer les droits sur les clefs de registre pour attibuer des droits particulier a un groupe d'utilsateur.
Je n'y arrive toujours pas mais je suis sur que c'est possible car on peut le faire "manuellement" avec le regedit, il dois donc forcement y avoir un moyen via programmation...
0