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

Messages postés
53
Date d'inscription
vendredi 7 octobre 2005
Dernière intervention
9 avril 2008
- - Dernière réponse : adnotlegland
Messages postés
53
Date d'inscription
vendredi 7 octobre 2005
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.
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
53
Date d'inscription
vendredi 7 octobre 2005
Dernière intervention
9 avril 2008
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

Dire « Merci » 3

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

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

Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Dernière intervention
2 octobre 2016
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
Messages postés
262
Date d'inscription
lundi 20 octobre 2003
Dernière intervention
27 avril 2007
0
Merci
qui vient de changer mon IP ??????

(joke)

Alain 31
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Dernière intervention
2 octobre 2016
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
Messages postés
53
Date d'inscription
vendredi 7 octobre 2005
Dernière intervention
9 avril 2008
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
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Dernière intervention
2 octobre 2016
0
Merci
Je vais te faire ça aujourd'hui :)

http://www.troxsa.info/
Code Vb.net
Messages postés
53
Date d'inscription
vendredi 7 octobre 2005
Dernière intervention
9 avril 2008
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.