adnotlegland
Messages postés53Date d'inscriptionvendredi 7 octobre 2005StatutMembreDernière intervention 9 avril 2008
-
6 mars 2006 à 18:40
adnotlegland
Messages postés53Date d'inscriptionvendredi 7 octobre 2005StatutMembreDerniè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.
adnotlegland
Messages postés53Date d'inscriptionvendredi 7 octobre 2005StatutMembreDerniè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)
adnotlegland
Messages postés53Date d'inscriptionvendredi 7 octobre 2005StatutMembreDerniè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