[VB.NET] Retour vers le WMI :-) [Résolu]

adnotlegland 53 Messages postés vendredi 7 octobre 2005Date d'inscription 9 avril 2008 Dernière intervention - 6 mars 2006 à 18:40 - Dernière réponse : adnotlegland 53 Messages postés vendredi 7 octobre 2005Date d'inscription 9 avril 2008 Dernière intervention
- 8 mars 2006 à 20:44
Bonjour à tous,

bon alors là je sèche les amis, j'ai beau chercher des infos sur le net, autant pour la recup d'infos via WMI y'a moyen de trouver autant là je galère, voici mon souci :

Tout simplement changer une ip avec WMI, bon, j'ai trouvé un code en C sur le site de sup'info que j'ai adapté en VB mais d'une ca ne marche pas et de 2, ben franchement, ca me parle pas :



Dim Ms
As
New ManagementScope("\root\cimv2")

Dim requete
As
New ObjectQuery("select IPAddress,DefaultIPGateway,DNSServerSearchOrder,IPSubnet from win32_networkadapterconfiguration where index= 1"

Dim recherche
As
New ManagementObjectSearcher(Ms, requete)


Ms.Connect()



Dim Col
As ManagementObjectCollection = recherche.Get 'jusque là tout va bien , mais après c'est un peu le flou artistique



Dim ObjNewIp
As ManagementBaseObject =
Nothing
Dim ObjSetIp
As ManagementBaseObject =
Nothing
Dim ObjNewGate
As ManagementBaseObject =
Nothing


For
Each Obj
As ManagementObject
In Col


ObjNewIp = Obj.GetMethodParameters("EnableStatic")
ObjNewGate = Obj.GetMethodParameters("SetGateways")
ObjNewGate("DefaultIPGateway") =
New
String() {"198.45.65.78"}
ObjNewIp("IPAddress") =
New
String() {"198.45.65.89"}
ObjNewIp("SubnetMask") =
New
String() {"255.255.255.0"}
ObjSetIp = Obj.InvokeMethod("EnableStatic", ObjNewIp,
Nothing) ' erreur: l'operation n'est pas valide en raison de l'état actuel de l'objet . ???????
ObjSetIp = Obj.InvokeMethod("SetGateways", ObjNewGate,
Nothing)



Next

Bon ben voilà, quelques modifs et quelques commentaires seraient grandement appreciés,
merci pour le coup de main.
Afficher la suite 

7 réponses

Meilleure réponse
adnotlegland 53 Messages postés vendredi 7 octobre 2005Date d'inscription 9 avril 2008 Dernière intervention - 8 mars 2006 à 20:44
3
Merci
Bon ben pour en finir, jme suis arrété sur un code de ce style pour redefinir les dns, si quelqu'un a mieux je suis preneur :


Dim Ms
As
New ManagementScope("\root\cimv2")

Dim requete
As
New ObjectQuery("select * from win32_networkadapterconfiguration where index= 1")

Dim recherche
As
New ManagementObjectSearcher(Ms, requete)


Ms.Connect()



Dim Col
As ManagementObjectCollection = recherche.Get



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)

End
If
For
Each obj
As ManagementObject
In Col
ObjNewDns = obj.GetMethodParameters("SetDNSServerSearchOrder")
ObjNewDns("DnsServerSearchOrder") = NewDns
obj.InvokeMethod("SetDNSServerSearchOrder", ObjNewDns,
Nothing)

Next

Merci à tous

Merci adnotlegland 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

troxsa 553 Messages postés jeudi 28 novembre 2002Date d'inscription 2 octobre 2016 Dernière intervention - 6 mars 2006 à 20:25
0
Merci
Salut,
J'arrive a faire mieux :) faire un chagement d'IP via WMI distant (avoir les droits admin)
Je te fait une demo demain si tu veux ! :)

@+
http://www.troxsa.info/Code VB.net
asecher 262 Messages postés lundi 20 octobre 2003Date d'inscription 27 avril 2007 Dernière intervention - 6 mars 2006 à 22:36
0
Merci
qui vient de changer mon IP ??????

(joke)

Alain 31
troxsa 553 Messages postés jeudi 28 novembre 2002Date d'inscription 2 octobre 2016 Dernière intervention - 6 mars 2006 à 22:51
0
Merci
C'est un peu pres le meme principe que http://www.troxsa.info/index.php?option=com_content&task=view&id=50&Itemid=2
et c'est complement possible a faire :)

<hr size="2" width="100%">
Plus votre titre sera pertinent plus vous aurez de réponse

http://www.troxsa.info/
Code Vb.net
adnotlegland 53 Messages postés vendredi 7 octobre 2005Date d'inscription 9 avril 2008 Dernière intervention - 7 mars 2006 à 06:16
0
Merci
bizarrement le code que j'ai posté plus haut marche si l'on effectue la requete avec un (select *) !!!!??
Par contre TroXsa je me suis inspiré de ton code sur le redemmarage d'un pc distant :

Dim Ms
As
New ManagementScope("\root\cimv2")

Dim requete
As
New ObjectQuery("select * from win32_networkadapterconfiguration where index= 1" )

Dim recherche
As
New ManagementObjectSearcher(Ms, requete)
Ms.Connect()



Dim Col
As ManagementObjectCollection = recherche.Get
Dim gateway()
As
Object = {"192.168.0.58"}



For
Each Obj
As ManagementObject
In Col


Obj.InvokeMethod("SetGateways", gateway)



Exit
For
Next

Et là j'obtiens un problem de cast, donc voilà, si j'osais je te demanderais un petit exemple pour modifier des dns
troxsa 553 Messages postés jeudi 28 novembre 2002Date d'inscription 2 octobre 2016 Dernière intervention - 7 mars 2006 à 09:50
0
Merci
Je vais te faire ça aujourd'hui :)

http://www.troxsa.info/
Code Vb.net
adnotlegland 53 Messages postés vendredi 7 octobre 2005Date d'inscription 9 avril 2008 Dernière intervention - 7 mars 2006 à 18:46
0
Merci
up

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.