Réservation IP

Signaler
Messages postés
2
Date d'inscription
mercredi 26 juillet 2006
Statut
Membre
Dernière intervention
15 septembre 2006
-
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
-
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

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
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
Messages postés
2
Date d'inscription
mercredi 26 juillet 2006
Statut
Membre
Dernière intervention
15 septembre 2006

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...
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
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
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
(fil redirigé)

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