Code wmi

Signaler
Messages postés
225
Date d'inscription
samedi 7 avril 2007
Statut
Membre
Dernière intervention
21 mai 2009
-
Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
10 février 2009
-
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

Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
10 février 2009
2
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)