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

Langage Delphi Discussion :

Impossible d'accéder au HKLM avec un service NetworkService


Sujet :

Langage Delphi

  1. #1
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut Impossible d'accéder au HKLM avec un service NetworkService
    Salut tout le monde,
    je suis en train de développer un service dont le compte est "SERVICE RESEAU" (NT AUTHORITY\NetworkService).
    Je n'arrive pas à accéder aux clés dans la base de registre se trouvant dans HKEY_LOCAL_MACHINE.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure Test;
    var
      Registre : TRegistry;
    begin
      Registre := TRegistry.Create;
      Registre.RootKey := HKEY_LOCAL_MACHINE;
      if not Registre.OpenKey( 'Software\Microsoft', True ) then
        ShowMessage( 'Ca ne s''ouvre pas' );
     
      Registre.Free;
    end;
    Je suis en train de chercher depuis plusieurs heures et ne trouve pas la solution, je suis en train de m'arracher les cheveux.
    Connaissez-vous une solution à mon problème ? Merci.

  2. #2
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    bonjour,

    la syntaxe est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function OpenKey(const Key: string; CanCreate: Boolean): Boolean;
    Il s'agit donc peut être d'un probleme de droit étant donné que tu essayes d'ouvrir en lecture/écriture sur HKLM ?
    es-tu en admin sur ton poste ?
    XP ou Vista ?

    Si c'est que pour de la lecture, essaye de mettre 'False' en 2eme parametre
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  3. #3
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Comme le précise TicTacToe, si il s'agit d'un accès en lecture, le mieux est de définir ce type d'accès à la création de ton objet Registry:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      Registre := TRegistry.Create(KEY_EXECUTE);
      Registre.RootKey := HKEY_LOCAL_MACHINE;
      if not Registre.OpenKey( 'Software\Microsoft', False ) then
        ShowMessage( 'Ca ne s''ouvre pas' );
     
      Registre.Free;
    @+ Claudius

  4. #4
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    Je dois pouvoir écrire dedans, c'est pour ça que j'ai mis True.
    Je suis administrateur de mon poste et c'est un poste XP.
    Que je sois ou non administrateur de mon poste ne devrait pas être très important puisque le service ne se lance pas avec mon compte administrateur mais avec le compte NetworkService, enfin je pense.

    Le problème est que s'il faut gérer des droits d'accès, il faudrait que je puisse le faire en ligne de code.
    D'ailleurs, je n'arrive pas à trouver de documentation qui donne les accès possibles et pas possibles en fonction du compte du service.

  5. #5
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Yep !

    Peut-être rajouter les autorisations qui vont bien avec Regedt32, tu choisis HKLM et menu Sécurité/Autorisations... et tu ajoutes ce qui va bien ?
    Rien testé, juste une idée comme ça...

    Et ça va probablement se compliquer avec
    Le problème est que s'il faut gérer des droits d'accès, il faudrait que je puisse le faire en ligne de code.
    parce que là, j'ai pas la moindre idée...
    Mes 2 cts,
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #6
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    J'ai essayé de rajouter le compte "Service réseau" dans les autorisations de HKLM avec tous les droits mais ça ne change rien, il ne peut toujours pas ouvrir de clés dans HKLM.

  7. #7
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    Salut,
    juste pour dire que je n'utilise plus les clés dans HKLM depuis mon service, je ne travaille que dans HKCU et HK_USERS, ainsi je n'ai plus ce problème de droits.

Discussions similaires

  1. impossible d'accéder à un blob avec jquery
    Par thor76160 dans le forum Microsoft Azure
    Réponses: 7
    Dernier message: 18/02/2012, 13h03
  2. Réponses: 9
    Dernier message: 12/01/2011, 18h38
  3. Impossible d'accéder avec l'utilisateur SA
    Par zooffy dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 22/11/2010, 14h22
  4. Réponses: 1
    Dernier message: 06/04/2009, 13h19
  5. Impossible d'accéder à LDAP avec VB6
    Par Bouassa dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/12/2007, 15h15

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