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

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

1 réponse

Répondre au sujet
buchholz35 17 Messages postés vendredi 4 août 2006Date d'inscription 11 octobre 2009 Dernière intervention - 8 oct. 2009 à 12:32
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de buchholz35

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.