WMI : Accès refusé [Résolu]

ahlemlo 225 Messages postés samedi 7 avril 2007Date d'inscription 21 mai 2009 Dernière intervention - 26 mai 2007 à 09:05 - Dernière réponse : t_barbillon 341 Messages postés mercredi 8 juin 2005Date d'inscription 10 février 2009 Dernière intervention
- 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
Afficher la suite 

11 réponses

Répondre au sujet
t_barbillon 341 Messages postés mercredi 8 juin 2005Date d'inscription 10 février 2009 Dernière intervention - 28 mai 2007 à 09:21
+3
Utile
Est ce que les paramètres COM du pc distants sont bien configurés ?
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de t_barbillon
t_barbillon 341 Messages postés mercredi 8 juin 2005Date d'inscription 10 février 2009 Dernière intervention - 28 mai 2007 à 15:01
+3
Utile
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!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de t_barbillon
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 26 mai 2007 à 13:11
0
Utile
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
*/
Commenter la réponse de cs_coq
ahlemlo 225 Messages postés samedi 7 avril 2007Date d'inscription 21 mai 2009 Dernière intervention - 28 mai 2007 à 10:01
0
Utile
comment je peux vérifier les paramètres COM de pc distant?
merci
Commenter la réponse de ahlemlo
ahlemlo 225 Messages postés samedi 7 avril 2007Date d'inscription 21 mai 2009 Dernière intervention - 28 mai 2007 à 12:05
0
Utile
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
Commenter la réponse de ahlemlo
ahlemlo 225 Messages postés samedi 7 avril 2007Date d'inscription 21 mai 2009 Dernière intervention - 28 mai 2007 à 12:49
0
Utile
              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

           
           
Commenter la réponse de ahlemlo
t_barbillon 341 Messages postés mercredi 8 juin 2005Date d'inscription 10 février 2009 Dernière intervention - 28 mai 2007 à 12:52
0
Utile
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
Commenter la réponse de t_barbillon
t_barbillon 341 Messages postés mercredi 8 juin 2005Date d'inscription 10 février 2009 Dernière intervention - 28 mai 2007 à 13:00
0
Utile
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 ?
Commenter la réponse de t_barbillon
ahlemlo 225 Messages postés samedi 7 avril 2007Date d'inscription 21 mai 2009 Dernière intervention - 28 mai 2007 à 13:02
0
Utile
j'ai pas compris votre réponse svp préciser comment je peux enlever les limite de sécurité COM.
merci
Commenter la réponse de ahlemlo
ahlemlo 225 Messages postés samedi 7 avril 2007Date d'inscription 21 mai 2009 Dernière intervention - 28 mai 2007 à 13:11
0
Utile
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
Commenter la réponse de ahlemlo
ahlemlo 225 Messages postés samedi 7 avril 2007Date d'inscription 21 mai 2009 Dernière intervention - 28 mai 2007 à 14:18
0
Utile
et aussi dans le cas d'un pc locale il m'affiche tous les informations sauf l'adresse IP.
pourquoi?
merci
Commenter la réponse de ahlemlo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.