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

C# Discussion :

OpenRemoteBaseKey lire base de registre PC distant


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Speed41
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 718
    Par défaut OpenRemoteBaseKey lire base de registre PC distant


    Après plusieurs recherches sur le net infructueuses , je viens vous demander de l'aide

    Je voudrais simplement lire (pas modifier, pas supprimer) une clé de registre sur un PC distant
    J'ai le nom d'un compte administrateur et son mot de passe
    Le retour que j'ai avec mon code est : "Pas de sous clé"
    Je pense que ma clé environmentKey n'est pas correctement identifié

    La clé existe bien ! J'ai vérifié et testé avec une autre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    public string lectureClePCDistant(string ip, string cle, string valeur, string compte, string mdp, string domaine)
            {
                string reponse = "";
     
                try
                {
                    RegistryKey environmentKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, ip, RegistryView.Default);
                    try
                    {
                        RegistryKey key = environmentKey.OpenSubKey(cle);
                        if (environmentKey != null)
                        {
                            if (key.SubKeyCount > 0)
                            {
                                reponse = key.GetValue(valeur).ToString();
                            }
                            else
                            {
                                reponse = "Pas de sous clé";
                            }
                        }
                        else
                        {
                            reponse = "Erreur de clé";
                        }
                        key.Close();
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show(e.Message);
                    }
                    environmentKey.Close();
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message);
                }
     
                return reponse;
            }
    J'ai bien ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    try
                {
                    ConnectionOptions oConn = new ConnectionOptions();
                    oConn.Username = compte;
                    oConn.Password = mdp;
                    oConn.Impersonation = ImpersonationLevel.Impersonate;
                    oConn.Authentication = AuthenticationLevel.Default;
                    oConn.Authority = "ntlmdomain:" + domaine;
                    ManagementScope scope = new ManagementScope(@"\\" + ip + @"\root\default", oConn);
                    ManagementClass registry = new ManagementClass(scope, new ManagementPath("StdRegProv"), null);
                    scope.Connect();
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message);
                }
    au début de ma fonction mais ça ne change rien

    PC distant : windows XP, 7 (32 et 64) et plus

    Si quelqu'un a une piste pour m'aider ça m'arrangerais bien (si non, pourquoi poser la question me direz vous )

    Merci d'avance

  2. #2
    Membre éclairé Avatar de Speed41
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 718
    Par défaut
    Erreur de retranscription, voici le code corrigé un if (key.SubKeyCount > 0) de trop


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    public string lectureClePCDistant(string ip, string cle, string valeur, string compte, string mdp, string domaine)
            {
                string reponse = "";
     
                try
                {
                    RegistryKey environmentKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, ip, RegistryView.Default);
                    try
                    {
                        RegistryKey key = environmentKey.OpenSubKey(cle);
                        if (environmentKey != null)
                        {
                            reponse = key.GetValue(valeur).ToString();
                        }
                        else
                        {
                            reponse = "Erreur de clé";
                        }
                        key.Close();
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show(e.Message);
                    }
                    environmentKey.Close();
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message);
                }
     
                return reponse;
            }
    Merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/09/2015, 15h51
  2. Réponses: 0
    Dernier message: 02/04/2009, 11h06
  3. Lire la base de registre d'un poste distant
    Par Mut dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/04/2006, 18h12
  4. [C#] Lire une base de registre distante
    Par Scorff dans le forum C#
    Réponses: 2
    Dernier message: 08/11/2005, 14h39
  5. Comment lire la base de registres d'une machine distante ?
    Par chtiot dans le forum Web & réseau
    Réponses: 4
    Dernier message: 17/06/2005, 12h45

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