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

Services Windows Discussion :

Service et Registre


Sujet :

Services Windows

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Points : 26
    Points
    26
    Par défaut Service et Registre
    Salut,

    J'ai fait un service en C# .Net. Ce service doit modifier une clé de registre.

    Par contre, cette clé de registre n'est jamais modifié et l'écriture de la clé ne fait pas d'erreur de permission ou autre. Le code pour modifier la clé est fonctionnel si c'est dans une application windows.

    Donc, voici mon environnement :
    Os : windows xp pro
    Domaine : oui
    Service démarré avec compte système local.

    J'ai tenté de démarrer le service avec mon compte : user@domaine et cela fonctionne. Donc, avec le compte de système local cela est juste un problème de permission.

    Donc, ma question est la suivante : Quel user dois-je mettre pour que tout les usagers qui ont le service soit fonctionnel?

    Merci

  2. #2
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 568
    Points
    3 568
    Par défaut
    Quel est la clé? Parce que certaines parties de la registry dépendent du user qui fait la requête. Donc si tu veux modifier une cle dans HKCU, le user de ton service (local system je suppose) va voir HKCU\.Defaut. Tandis qu'avec ton user il va voir HKCU\TonUser.

    Il faudrait donc que tu saches quel est le user dont tu veux modifier la registry et aller dans ce HKCU\TonUser de manière explicite.
    Microsoft MVP : Windows Platform

    MCPD - Windows Phone Developer
    MCPD - Windows Developer 4

    http://www.guruumeditation.net

    “If debugging is the process of removing bugs, then programming must be the process of putting them in.”
    (Edsger W. Dijkstra)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Points : 26
    Points
    26
    Par défaut Hkey_Users\.Default
    Merci pour ta réponse!!

    En effet ,

    Tu as tout a fait raison, a partir du service avec démarrage avec Compte système local cela va modifier HKEY_USERS\.DEFAULT\.......

    Ce qui explique pourquoi il n'y avait pas d'erreur lors de l'écriture.

    Donc, si dans mon cas je veux que ce soit l'usager qui est actuellement connecté sur la machine quel user placer. Suis-je obligé de configurer chaque poste pour que le service démarre sous le user xyz.

    Existe-t-il un user currentUser pour les service?



    Citation Envoyé par EquinoxeDotNet Voir le message
    Quel est la clé? Parce que certaines parties de la registry dépendent du user qui fait la requête. Donc si tu veux modifier une cle dans HKCU, le user de ton service (local system je suppose) va voir HKCU\.Defaut. Tandis qu'avec ton user il va voir HKCU\TonUser.

    Il faudrait donc que tu saches quel est le user dont tu veux modifier la registry et aller dans ce HKCU\TonUser de manière explicite.

  4. #4
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 568
    Points
    3 568
    Par défaut
    Pas testé, mais cet exemple devrait te donner le user connecté :
    http://blog.ninethsense.com/get-curr...ystem-account/

    Par contre, il peut y avoir des problèmes si il y a plusieurs utilisateurs connectés (via remote, ou sessions multiples par exemple). Il devrait te donner la liste, mais lequel choisir?
    Microsoft MVP : Windows Platform

    MCPD - Windows Phone Developer
    MCPD - Windows Developer 4

    http://www.guruumeditation.net

    “If debugging is the process of removing bugs, then programming must be the process of putting them in.”
    (Edsger W. Dijkstra)

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Points : 26
    Points
    26
    Par défaut Solution
    Donc, pour conclure,

    J'ai pris la solution précédente pour trouver le username de la personne connecté.

    Comme je suis dans un service, j'utilise le username trouvé et convertit en sid pour retrouver la clé de registre dans hkey_user.

    Pour la conversion du username en SID j'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
       public string convertUsernameToSid(string username)
        {
          try
          {
            NTAccount user = new NTAccount(username);
            return user.Translate(typeof(SecurityIdentifier)).ToString();
          }
          catch (Exception)
          { 
            return "";
          }
        }
    Merci de l'aide!!

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

Discussions similaires

  1. Service et Registre
    Par sawbo1 dans le forum Windows XP
    Réponses: 2
    Dernier message: 09/11/2010, 15h37
  2. [VB.NET] accéder au registre via un service
    Par Golzinne dans le forum Windows Forms
    Réponses: 7
    Dernier message: 14/12/2006, 16h10
  3. [base de registre] création d'un service
    Par velociraptor5679 dans le forum Autres Logiciels
    Réponses: 16
    Dernier message: 13/06/2006, 22h32
  4. Service et Base de registre
    Par yosthegost dans le forum Delphi
    Réponses: 1
    Dernier message: 06/06/2006, 17h21
  5. Réponses: 15
    Dernier message: 22/09/2005, 12h08

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