WMI : Accès refusé

Résolu
ahlemlo Messages postés 225 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 21 mai 2009 - 26 mai 2007 à 09:05
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 - 28 mai 2007 à 15:01
bonjour à tous
pouvez vous m'aider svp:
lors de la connexion à une machine distant avec WMI il s'affiche un message "Accés réfusé" malgré que nous avons utilisés les options de connection de WMI (connectionoption()),le parfeu est désactivé.
je pense q'il est un probléme de sécurité mais je ne sais pas ou?
merci

11 réponses

t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
28 mai 2007 à 09:21
Est ce que les paramètres COM du pc distants sont bien configurés ?
3
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
28 mai 2007 à 15:01
Salut, tu dis avoir utilisé le ConnectionOption mais dans ton code je ne vois que le minimum (user, password), pour du Wmi distant il faut aussi renseigner le Authentication, et Impersonification. Si ça marche en local sans ça, c est parcequ en local le Wmi utilise le compte courant.
Donc comme précédment, il faut renseigner ses deux propriétés (ici), pour que ton programme puisse être authentifié par le pc distant, il faut aussi que le pc distant puisse le reconnaitre donc il faut autoriser les requetes Wmi distante (via dcomcnfg). As tu aussi regardé si le Wmi était bien installé (uilise Wbemtest)
Enfin, il faut faire attention aux exceptions, dans ton code, aucune gestion n'est prévue!
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
26 mai 2007 à 13:11
Merci de donner des titres plus explicites à l'avenir, ce post est passé à 2 doigts d'être considéré comme un doublon...

/*
coq
MVP Visual C#
CoqBlog
*/
0
ahlemlo Messages postés 225 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 21 mai 2009
28 mai 2007 à 10:01
comment je peux vérifier les paramètres COM de pc distant?
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ahlemlo Messages postés 225 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 21 mai 2009
28 mai 2007 à 12:05
bonjour
j'ai pas trouvé une solution qui peut m'aider comment on affiche les information d'un pc distant.
c'est bien passé avec un machine locale.
merci
0
ahlemlo Messages postés 225 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 21 mai 2009
28 mai 2007 à 12:49
              bonjour,
//voici le code qui permet d'afficher les information d'un pc distant est ce que c'est juste oui ou non.
j'attend votre réponse.

      try
                    {
                        ip = textBox1.Text;
                        ipaddr = System.Net.IPAddress.Parse(ip);
                    }
                    catch
                    {
                        textBox3.Text = "hôte introuvable";
                    }
               
                ConnectionOptions aConnectionsOptions = new ConnectionOptions();
           
                aConnectionsOptions.Username = textBoxuser.Text;
                aConnectionsOptions.Password = textBoxpassword.Text;
              
                System.Management.ManagementScope aManagementScope = new System.Management.ManagementScope(@"\" +ipaddr+ @"\root\cimv2",aConnectionsOptions );

                // Sélection des dispositifs réseaux activés
                System.Management.ObjectQuery aObjectQuery = new System.Management.ObjectQuery("Select * from Win32_NetworkAdapter");

                // Extraction de la collection d'objets en fonction de la requête WMI
                System.Management.ManagementObjectSearcher aManagementObjectSearcher = new System.Management.ManagementObjectSearcher(aManagementScope, aObjectQuery);

                // Affectation du résultat de la requête WMI
                System.Management.ManagementObjectCollection aManagementObjectCollection = aManagementObjectSearcher.Get();

                // Chaque enregistrement de la collection représente une interface réseau
                foreach (ManagementObject aManagementObject in aManagementObjectCollection)
                {
                    //Ajout d'un retour chariot pour séparer à l'affichage les objets extraits.
                    textBox3.Text += "\r\n";
                    //PropertyData représente les informations retournées par la propriété WMI de l'objet extrait par le ManagementObject utilisé.
                    foreach (System.Management.PropertyData aPropertyData in aManagementObject.Properties)
                    {                        if (aPropertyData.Name "AdapterType" || aPropertyData.Name "DeviceID" || aPropertyData.Name == "Description" || aPropertyData.Name == "MACAddress" || aPropertyData.Name == "NetworkAddresses" || aPropertyData.Name == "NetConnectionID" || aPropertyData.Name == "SerialNumber")

                        textBox3.Text += aPropertyData.Name + " : " + System.Convert.ToString(aManagementObject[aPropertyData.Name]) + "\r\n";
                    }

                }

merci pour tous

           
           
0
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
28 mai 2007 à 12:52
Il y a sans doute un problème d'autentification sur le pc distant ; quand tu te connectes au pc distant il faut que celui-ci te reconnaise et t'accorde les droit, c'est à ça que sert les propriétés  Authentication et Impersonification. En face, sur le pc distant, tu dois avoir autorisé l'exécution de ce genre de requête : regarde les limites de sécurités COM
0
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
28 mai 2007 à 13:00
Au passage quelque points : Si tu veux récupérer seulement certaines données (apparement c'est ce que tu fais), tu peux changer ta requête et écrire : SELECT AdapterType, DeviceId,.... From Win32_NetworkAdapter
Il arrive que certains champs soient nuls donc ta ligne de code :
System.Convert.ToString(aManagementObject[aPropertyData.Name]) va lever une exception de type ArgumentNullException, il faut que tu testes l'objet avant de le caster.
Concaténer des chaines de caractères est pas très "propre", utilise plutôt un StringBuilder ou la méthode Format (String.Format)
Enfin, je ne comprend pas pourquoi stocker tes résultats dans une TextBox, pourquoi ne pas utiliser une ListBox ?
0
ahlemlo Messages postés 225 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 21 mai 2009
28 mai 2007 à 13:02
j'ai pas compris votre réponse svp préciser comment je peux enlever les limite de sécurité COM.
merci
0
ahlemlo Messages postés 225 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 21 mai 2009
28 mai 2007 à 13:11
on a essayer avec cette méthode rien ne ce passe.
avec un pc local tous passe bien.
le code que je te donner ci dessous est ce que c'est juste oui ou non.
vraiment je suis perdu.
en tous cas merci pour votre aide
0
ahlemlo Messages postés 225 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 21 mai 2009
28 mai 2007 à 14:18
et aussi dans le cas d'un pc locale il m'affiche tous les informations sauf l'adresse IP.
pourquoi?
merci
0
Rejoignez-nous