Code wmi

ahlemlo Messages postés 225 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 21 mai 2009 - 28 mai 2007 à 12:55
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 - 7 nov. 2007 à 18:56
bonjour à tous,
pouvez vous m'aider?
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?
//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

1 réponse

t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
7 nov. 2007 à 18:56
Salut,
Pour une connexion à distance avec le WMI, les logins et password ne sont pas suffisants, il faut aussi vérifier les paramètres de sécurité COM.
Donc il faut spécifier le niveau d'authentification (Authentication) et le niveau d'identité (Impersonation) dans le code et aussi vérifier que le PC distant est bien configuré (onglet sécurité COM)
0
Rejoignez-nous