Utilisation de SetDNSServerSearchOrder dans Microsoft VB Express 2008 et COMExce

Résolu
buchholz35 Messages postés 17 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 11 octobre 2009 - 7 oct. 2009 à 23:50
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.

1 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
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.
3
Rejoignez-nous