fr252040
Messages postés2Date d'inscriptionmercredi 26 juillet 2006StatutMembreDernière intervention15 septembre 2006
-
15 sept. 2006 à 16:20
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 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.
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 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
fr252040
Messages postés2Date d'inscriptionmercredi 26 juillet 2006StatutMembreDernière intervention15 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...
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 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