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

Résolu
adnotlegland Messages postés 53 Date d'inscription vendredi 7 octobre 2005 Statut Membre Dernière intervention 9 avril 2008 - 6 mars 2006 à 18:40
adnotlegland Messages postés 53 Date d'inscription vendredi 7 octobre 2005 Statut Membre Dernière intervention 9 avril 2008 - 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.

7 réponses

adnotlegland Messages postés 53 Date d'inscription vendredi 7 octobre 2005 Statut Membre Dernière intervention 9 avril 2008
8 mars 2006 à 20:44
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
3
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
6 mars 2006 à 20:25
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
0
asecher Messages postés 262 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 27 avril 2007 1
6 mars 2006 à 22:36
qui vient de changer mon IP ??????

(joke)

Alain 31
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
6 mars 2006 à 22:51
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
adnotlegland Messages postés 53 Date d'inscription vendredi 7 octobre 2005 Statut Membre Dernière intervention 9 avril 2008
7 mars 2006 à 06:16
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
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
7 mars 2006 à 09:50
Je vais te faire ça aujourd'hui :)

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