Réservation IP

fr252040 Messages postés 2 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 15 septembre 2006 - 15 sept. 2006 à 16:20
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 - 15 sept. 2006 à 19:01
Bonjour à tous,


J'ai écrit un petit script qui, à partir d'un tableau excel contenant un certain nombre d'informations devrait effectuer la réservation d'une adresse IP au niveau DHCP.


Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\IP2.xls")
Set objShell = WScript.CreateObject("WScript.Shell")
Set WshShell = WScript.CreateObject("Wscript.Shell")


intRow = 2


Do Until objExcel.Cells(intRow, 1).Value = ""


        descript = objExcel.Cells(intRow, 1).Text
        mac = objExcel.Cells(intRow, 3).Text
        id = objExcel.Cells(intRow, 5).Text 
        finip = objExcel.Cells(intRow, 6).Text
        ip = "142.50." & id & "." & finip
 
        ligne = "cmd.exe /K netsh dhcp server scope 142.50.0.0 add reservedip " & ip & " " & mac & " " & descript"
        'Wscript.Echo  " " &ligne
        objShell.Run(&ligne)
        intRow = intRow + 1
Loop


objExcel.Quit


Malheureusement, la commande ne s'éxecute pas. Pire , lorsque j'execute directement la ligne de commande dans une fenêtre DOS, tout se passe correctement et l'IP est bien réservée.


J'ai essayé un certain nombre de manip dont 'objShell.Run ("cmd.exe /K &ligne") (avec la modif qui va bien au niveau de ligne), pour le même résultat.


Si quelqu'un a une idée, je suis preneur...


Merci

4 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
15 sept. 2006 à 16:42
Salut,

Déjà, je comprend pas le dernier double guillemet de cette ligne :

   ligne = "cmd.exe /K netsh dhcp server scope 142.50.0.0 add
reservedip " & ip & " " & mac & " " & descript"

Ca te fais 7 guillemets sur la ligne, et elle est donc forcément fausse de ce qu'en j'en sais.

Ensuite, je ne comprend pas le & dans cette ligne :

objShell.Run(&ligne)

M'enfin admettons que ça passe...

Tu peux peut être essayé ça à tout hasard...

ligne = "cmd.exe /K ""netsh dhcp server scope 142.50.0.0 add reservedip " & ip & " " & mac & " " & descript & """"

Et surtout essayer nous donner le message d'erreur du DOS. Quelque chose comme ça devrait te permettre de lire ce que te donne l'invite.
ligne = "cmd.exe /K ""netsh dhcp server scope 142.50.0.0 add reservedip
" & ip & " " & mac & " " & descript & " & Pause"""

@+
<hr size="2" width="100%" />Je suis en deuxième année en école d'ingénieur et passionné de développement logiciel. Je cherche un stage en entreprise sur paris ou Clermont de début avril à fin juillet 2007. Mes langages de prédilection sont
0
fr252040 Messages postés 2 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 15 septembre 2006
15 sept. 2006 à 17:05
Tout d'abord merci pour ta réponse.

Malheureusement, tes propositions n'ont pas résolu le pb  

En fait, je crois que le problème vient du passage de paramètres.
Si on prend la façon académique de faire la chose, ça devrait plutôt ressembler à ça:

Set objShell = WScript.CreateObject("Wscript.Shell")
ligne = "netsh dhcp server scope 142.50.0.0 add reservedip " & ip & " " & mac & " " & descript"
objShell.Run("cmd.exe /K nom_de_la_commande_à_executer")

Or, la commande que je souhaite executer n'est pas figée, les paramètres varient d'une éxecution à l'autre. Quand, à la place de nom_de_la_commande_à_executer, je place la commande en elle même et que je spécifie toutes les valeurs: objShell.Run("cmd.exe /K netsh dhcp server scope 142.50.0.0 add reservedip 142.50.2.1 xxxxxxxxxxxxxxxx Poste1"), ça marche....

Le message d'erreur est le suivant: Echec de l'ajout de réserve de l'adresse ip..... Les paramètres passés sont incomplets ou invalides

En fait, je ne suis pas développeur, donc si tu as une autre idée pour faire le truc, c'est avec plaisir que j'essaierai...
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
15 sept. 2006 à 17:29
Le problème est dans les paramètres de netsh... Tu es sur de ce que tu as dans le fichier C:\IP2.xls ?

Tu peux peut être aussi essayer ça pour mieux voir le problème :

ligne = "cmd.exe /K echo ""dhcp server scope 142.50.0.0 add reservedip " & ip & " " & mac & " " & descript & """"

<hr size="2" width="100%" />Je suis en deuxième année en école d'ingénieur et passionné de développement logiciel. Je cherche un stage en entreprise sur paris ou Clermont de début avril à fin juillet 2007. Mes langages de prédilection sont
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
15 sept. 2006 à 19:01
(fil redirigé)

Arf ! *** des thèmes existent merci de poster à l'avenir dans celui correspondant.
0
Rejoignez-nous