SCRIPT changer adresses IP prises dans un fichier

SCRIPT changer adresses IP prises dans un fichier - Win NT/2K/XP - Windows & Software

Marsh Posté le 06-07-2009 à 19:38:35    

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 :
  1. machine1.domaine 192.168.0.1
  2. machine2.domaine 192.168.0.2
  3. 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 :
  1. @echo off
  2. netsh interface ip set address "connexion au r,seau local" static 192.168.0.1 255.255.255.0 192.168.0.254 1
  3. netsh interface ip set dns "connexion au r,seau local" static 192.168.0.254 primary
  4. netsh interface ip set wins "connexion au r,seau local" static 192.168.0.253
  5. echo %COMPUTERNAME% > c:\TMP\IPconfig.txt
  6. 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 :
  1. strComputer = "."
  2. Set objWMIService = GetObject("winmgmts:" _
  3.     & "{impersonationLevel=impersonate}!\\" & strComputer &
  4. "\root\cimv2" )
  5. Set colNetAdapters = objWMIService.ExecQuery _
  6.     ("Select * from Win32_NetworkAdapterConfiguration where
  7. IPEnabled=TRUE" )
  8. strIPAddress = Array("192.168.5.188" )
  9. strSubnetMask = Array("255.255.255.224" )
  10. strGateway = Array("192.168.5.190" )
  11. strDNSServers = Array("97.20.255.254" )
  12. strGatewayMetric = Array(1)
  13. For Each objNetAdapter in colNetAdapters
  14.     errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
  15.     errGateways = objNetAdapter.SetGateways(strGateway,
  16. strGatewaymetric)
  17.     errDOM = objNetAdapter.SetDNSServerSearchOrder(strDNSServers)
  18.     If errEnable = 0 Then
  19.         WScript.Echo "L'addresse IP a été changée correctement."
  20.     Else
  21.         WScript.Echo "L'addresse n'a pas été changée il y a un Pb."
  22.     End If
  23. Next


En VB, c'est pire, je maitrise absoluement pas le language.
 
Auriez-vous une piste?
Parceque bien sur, c'est super urgent :)

Reply

Marsh Posté le 06-07-2009 à 19:38:35   

Reply

Marsh Posté le 06-07-2009 à 23:54:07    

Tu prends ce que tu connais sauf si tu veux apprendre alors là vbs+wmi ou powershell+wmi et tu peux lancer tt à distance.
 
sinon ouais faut utiliser computername et tu explode ta ligne dans ton fichier texte

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed