IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Privilège d'écriture dans la base de registre


Sujet :

Windows

  1. #1
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut Privilège d'écriture dans la base de registre
    Bjr

    Je fais évoluer une application (C++ Builder 6) qui lit et écrit dans la base de registre. Sous XP et précèdent aucun problème.

    Sous Vista et Seven cette fonction est bloquée par les droits insuffisants. Puis je acquérir les droits par programmation ou faut il donner les droits à l'utilisateur (ce qui est dommage car permanent).

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ben ça dépend où tu écris (CLASSES_ROOT/LOCAL_MACHINE vs. CURRENT_USER), et si tu écris dans un des deux premiers, pourquoi.

    Si c'est un truc que seuls les admins doivent faire, tu dois demander une élévation (ce que tu ne peux faire dans l'exécution du programme: il faut faire ça avant ou utiliser un composant COM hors-processus). Si c'est supposé être accessible aux utilisateurs, alors tu dois leurs donner le droit sur la clé correspondante (typiquement HKLM\Ta Boite\Ton Appli).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    Bonjour

    il s'agit d'écrire dans

    HKLM\Software\Microsoft\Windows\CurrentVersion\AppPaths

    Comment donner le droit sur cette clé ?

    Le droit se donne à l'utilisateur ou au programme ?

    Merci d'avance

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Écrire dans les App Paths, c'est typiquement le genre de choses qui ne doit se laisser qu'aux admins. Typiquement, c'est dans l'installeur qu'on fait ça, pas dans le programme lui-même...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Écrire dans les App Paths, c'est typiquement le genre de choses qui ne doit se laisser qu'aux admins. Typiquement, c'est dans l'installeur qu'on fait ça, pas dans le programme lui-même...
    +1

    Citation Envoyé par frantzgac Voir le message
    Comment donner le droit sur cette clé ?

    Le droit se donne à l'utilisateur ou au programme ?
    Sous Windows, le droit se donne à un utilisateur ou à un groupe d'utilisateur, pas à un programme.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  6. #6
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Écrire dans les App Paths, c'est typiquement le genre de choses qui ne doit se laisser qu'aux admins. Typiquement, c'est dans l'installeur qu'on fait ça, pas dans le programme lui-même...
    Typiquement oui, mais si on fournit un logiciel qui comporte un module d'administration, réservé aux administrateurs, il faut bien donner le droit à un moment où un autre.

  7. #7
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    Citation Envoyé par ram-0000 Voir le message
    +1


    Sous Windows, le droit se donne à un utilisateur ou à un groupe d'utilisateur, pas à un programme.
    Il me semble que si. La fonction "propriétés/Compatibilité/Exécuter en tant qu'administrateur" fait ça très bien.

    J'aurais aimé acquérir les droits par programme et éviter à mon utilisateur de bricoler dans les propriétés.

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Pour ça, tu dois régler la partie "UAC" du module d'administration (ce doit être un EXE séparé) pour qu'il réclame l'élévation en tant qu'administrateur. Cela peut se faire assez facilement sous un Visual Studio 2008 ou supérieur.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    Merci, mais j'utilise C++ Builder 6.
    Quand à UAC, j'avoue mon ignorance...

  10. #10
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ça m'étonnerait que BCB 6 permette de régler le Manifest d'un exécutable; tu vas devoir en créer un manuellement et l'ajouter en ressource...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    "régler le manifest d'un exécutable" je n'arrivais pas à me souvenir de cette expression que j'avais déja lu quelque part ...

    Mais où puis je trouvez des infos sur ce "réglage ?".

    (je vais chercher par moi même of course, mais si jamais vous avez une adresse ?)

  12. #12
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    C'est le même fichier que pour avoir les "Common Controls Version 6", sauf qu'il y a d'autres bouts de XML à y rajouter.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Plus d'infos sur le contenu en question (mais rien sur la façon de déclarer le manifeste en ressources de l'application).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    Bjr

    Le même problème étudié sous l'angle de Delphi 7.

    Il semble que ce lien http://www.theabsolute.net/sware/delphivista.html#uac
    contienne la solution du problème évoqué dans un kit téléchargeable que je résume ainsi :

    Le fichier de ressources uac.manifest (sous forme XML) présenté par uac.rc, puis compilé par brcc32.exe est associé au projet delphi par la directive {$R uac.res}. Une fois compilé dans ces conditions, l’exécutable Delphi fait tout ce qu'on veut dans la base de registre par exemple (je l'ai testé) y-compris dans des clés comme HKLM.

    Par contre Seven l'affuble d'un petit blason jaune et bleu et il est nécessaire de valider à chaque lancement l'autorisation d’exécution.

    Il reste à vérifier que la même manipe fonctionne aussi sous C++ Builder.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Premiers pas d'écriture et de lecture dans la Base de Registre (DWORD)
    Par DelphiCool dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 13/02/2013, 20h39
  2. Réponses: 5
    Dernier message: 25/08/2011, 09h31
  3. [VB6]ecrire une chaine de byte dans la base de registre
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 17/12/2008, 10h50
  4. Réponses: 1
    Dernier message: 20/09/2006, 18h14
  5. Réponses: 16
    Dernier message: 22/03/2005, 21h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo