Bonjour,
Je cherche desesperement à écrire un script qui permete au boot de la machine de changer sa configuration IP.
Le probleme, c'est que je vais lancer ca sur plusieurs machines donc que chaque machine va devoir choisir une IP unique.
Pour cela, je dispose de la liste des noms netbios des machines, et de leurs futures ip:
Code :
- machine1.domaine 192.168.0.1
- machine2.domaine 192.168.0.2
- etc...
|
J'ai le choix du language entre vbs ou shell en .cmd
Pour l'instant, j'ai un classique script cmd qui utilise netsh, mais valable uniquement pour une seule machine puisque j'ai en dur les ip:
Code :
- @echo off
- netsh interface ip set address "connexion au r,seau local" static 192.168.0.1 255.255.255.0 192.168.0.254 1
- netsh interface ip set dns "connexion au r,seau local" static 192.168.0.254 primary
- netsh interface ip set wins "connexion au r,seau local" static 192.168.0.253
- echo %COMPUTERNAME% > c:\TMP\IPconfig.txt
- netsh dump >> c:\TMP\IPconfig.txt
|
Je présume donc que je peux utiliser la variable %COMPUTERNAME% et que je dois parser mon fichier pour rentrer les ip dans une variable, du genre: %COMPUTERNAME%= ligne1,mot1 etc, mais je seche sur le moyen de le faire.
J'ai la meme chose en vb:
Code :
- strComputer = "."
- Set objWMIService = GetObject("winmgmts:" _
- & "{impersonationLevel=impersonate}!\\" & strComputer &
- "\root\cimv2" )
- Set colNetAdapters = objWMIService.ExecQuery _
- ("Select * from Win32_NetworkAdapterConfiguration where
- IPEnabled=TRUE" )
- strIPAddress = Array("192.168.5.188" )
- strSubnetMask = Array("255.255.255.224" )
- strGateway = Array("192.168.5.190" )
- strDNSServers = Array("97.20.255.254" )
- strGatewayMetric = Array(1)
- For Each objNetAdapter in colNetAdapters
- errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
- errGateways = objNetAdapter.SetGateways(strGateway,
- strGatewaymetric)
- errDOM = objNetAdapter.SetDNSServerSearchOrder(strDNSServers)
- If errEnable = 0 Then
- WScript.Echo "L'addresse IP a été changée correctement."
- Else
- WScript.Echo "L'addresse n'a pas été changée il y a un Pb."
- End If
- Next
|
En VB, c'est pire, je maitrise absoluement pas le language.
Auriez-vous une piste?
Parceque bien sur, c'est super urgent