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