Utilisation de SetDNSServerSearchOrder dans Microsoft VB Express 2008 et COMExce [Résolu]

Messages postés
17
Date d'inscription
vendredi 4 août 2006
Statut
Membre
Dernière intervention
11 octobre 2009
- - Dernière réponse : buchholz35
Messages postés
17
Date d'inscription
vendredi 4 août 2006
Statut
Membre
Dernière intervention
11 octobre 2009
- 8 oct. 2009 à 12:32
Bonjour,

J'espère être dans la bonne catégorie ...

Je dois faire une toute petite appli pour changer les serveurs DNS primaire et secondaire des connexions réseaux du pc.

J'ai trouvé énormément d'exemple sur le Net, mais à chaque fois j'obtiens la même erreur :
Une exception COMException est levée quand un HRESULT non reconnu est retourné d'un appel de méthode COM.


Voici mon code :

Dim NomPC, objWMIService
        Dim objItem, colItems, strComputer
        Dim errEnable
        Dim dns1 As String = "192.168.0.253"
        Dim dns2 As String = "192.168.0.254"
        Dim NewDns() As String = {dns1, dns2}
        If dns2 = "0.0.0.0" Then ReDim Preserve NewDns(0)

        NomPC = My.Computer.Name

        objWMIService = Nothing 'Libere le contenu de objWMIService pour le remettre a 0 
        colItems = Nothing 'Idem 
        objWMIService = GetObject("winmgmts:\" & NomPC & "\root\cimv2")
        colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
    

        For Each objItem In colItems
            'configure les adresses DNS
            errEnable = objItem.SetDNSServerSearchOrder(NewDns)
        Next


Je n'ai pas trouvé de références WMI à rajouter, (est-ce là l'erreur ?)

Si une âme charitable veut bien me guider ...

Cordialement.
Afficher la suite 
A voir également:

1 réponse

Meilleure réponse
Messages postés
17
Date d'inscription
vendredi 4 août 2006
Statut
Membre
Dernière intervention
11 octobre 2009
3
Merci
Deux choses visiblement.

La définition de l'array n'était pas bonne, il faut que ce soit un onjet :

Dim NewDns() As Object = {"192.168.0.1", "192.168.0.2"}


Et deuxième chose, il faut être administrateur pour lancer l'appli.

Temporairement, j'ai trouvé ça à corriger dans .manifest:

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />


Le mieux aurait été de passer en mode admin pour la commande proprement dite.

Je creuse le problème.

Si ça peut aider

Cordialement.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 135 internautes nous ont dit merci ce mois-ci

Commenter la réponse de buchholz35