Question Réservation DHCP (Résolu)

Plus d'informations
il y a 16 ans 4 mois #1292 par balek
Réservation DHCP (Résolu) a été créé par balek
Un grand bonjour à tous le monde et \" hé ui c'est encore moi !! :)\"

Voila, je voudrais faire des reservation d'adresse IP sur deux serveur DHCP different mais en meme temps bien sur.

Je pense etre pas trop mal parti pour une fois, seul dans mon coin mais j'aimerais bien encore un peu d'aide.

Voici donc mon debut de scriptouille :

[code:1]$args=\"127.0.0.1\",\"127.0.0.1\"
$scope=\"10.0.0.0\"
$ip=\"10.0.0.51\"
$mac=\"0012345678\"
$name=\"test\"
$wshshell=new-object -comobject \"wscript.shell\"
foreach($i in $args)
{$wshshell.run(\"netsh dhcp server $i scope $scope add reservedip $ip $mac $name\"«»)}
[/code:1]

Jusque la tout va bien ( J'ai decouvert wsh hier alors j'm'en sert aussi ... ;))

Je pense que ma resa sur les deux serveurs doit fonctionner ( du moins ca marche au moins sur un, j'ai pu tester que sur un pour le moment)

Maintenant, je bloque pour pouvoir me servir d'une liste d'adresses ip,mac,name pour automatiser vraiment la chose.

J'espere avoir été clair.

Merci d'avance.<br><br>Message édité par: Arnaud, à: 30/11/07 09:56

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 4 mois #1294 par balek
Réponse de balek sur le sujet Re:Reservation DHCP
:woohoo: Yes , j'suis arrivé !!

[code:1]
$scope=\&quot;10.0.0.0\&quot;
$info=import-csv c:\pwh\dhcp\info.csv
$wshshell=new-object -comobject \&quot;wscript.shell\&quot;
foreach($i in $info){
$ip=$i.ip
$mac=$i.mac
$name=$i.name
{$wshshell.run(\&quot;netsh dhcp server 127.0.0.1 scope $scope add reservedip $ip $mac $name\&quot;«»)}[/code:1]

Héhé, ca marche en local pour reserver plusieurs adresses en meme temps.

Maintenant, faut que je le perfectionne au taf demain pour le faire sur deux serveurs Dhcp en meme temps avec les memes adresses.

Enfin, c'est bien cool, a cette heure ci, ca me fais plaisir. :laugh:

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 4 mois #1295 par balek
Réponse de balek sur le sujet Re:Reservation DHCP
[code:1]$scope=\&quot;10.0.0.0\&quot;
$info=import-csv c:\pwh\dhcp\info.csv
$wshshell=new-object -comobject \&quot;wscript.shell\&quot;
foreach($i in $info){
$ip=$i.ip
$mac=$i.mac
$name=$i.name
$wshshell.run(\&quot;netsh dhcp server 127.0.0.1 scope $scope add reservedip $ip $mac $name\&quot;«»)
$wshshell.run(\&quot;netsh dhcp server 192.168.1.30 scope $scope add reservedip $ip $mac $name\&quot;«»)
}[/code:1]

Héhé nikel, ca reserve bien sur mesdeux serveurs dhcp.

Maintenant, faudrais mettre une gestion d'erreur. Genre si la resa existe, me le signigier.


EDIT : Si vous avez des id, jesuis preneur ;)
@+<br><br>Message édité par: balek, à: 27/11/07 15:52

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 4 mois #1297 par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Reservation DHCP
Hello Balek,

Je n'ai pas de serveur DHCP pour pouvoir tester la présence d'une réservation avec la commande netsh, mais j'ai deux commentaires sur ton code:

1. Utilisation de WSHShell.Run()

Celle-ci est totalement inutile pour l'usage que tu en fais. Tu peux tout aussi bien appeler netsh directement:

netsh dhcp server 192.168.1.30 scope $scope add reservedip $ip $mac $name

L'objet COM WScript.Shell est surtout utile dans PowerShell pour la création de raccourcis (CreateShortcut), l'envoi de touches à la fenêtre active (SendKeys, précédé de AppActivate si besoin), et l'accès aux Dossiers Spéciaux (SpecialFolders).

2. Utilisation de $args

Ce nom de variable est utilisé par PowerShell dans un script pour stocker les arguments passé sans nom de paramètre. Par exemple:

[code:1]
# script: test-args.ps1
param ($arg1, $arg2)
\&quot;Arg1 = $arg1\&quot;
\&quot;Arg2 = $arg2\&quot;
\&quot;Args = $args\&quot;
# fin de script

PS&gt; test-args hello world comment allez-vous?
Arg1 = hello
Arg2 = world
Args = comment allez-vous?
PS&gt; test-args -arg2 hello -arg1 world comment allez-vous?
Arg1 = world
Arg2 = hello
Args = comment allez-vous?
[/code:1]
Exemple super utile, non? Le but, c'est surtout de te montrer que PowerShell se réserve l'usage de $args, il vaut donc mieux éviter de l'utiliser pour tes propres variables, sous peine de provoquer des effets de bord difficiles à déboguer.

Janel

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 3 mois #1300 par balek
Réponse de balek sur le sujet Re:Reservation DHCP
Merci pour tes conseils.

C'est vrai que j'utilise wsh un peu pour rien, j'trouvais que ca fesait joli ;) ( j'plaisante bien sur mais ca m'a permis de le decouvrir.)

OK pour $args, c'est pour cela que j'ai utilisé $info a la place.

[code:1]$scope=\&quot;10.0.0.0\&quot;
$info=import-csv c:\pwh\dhcp\info.csv
$wshshell=new-object -comobject \&quot;wscript.shell\&quot;
foreach($i in $info){
$ip=$i.ip
$mac=$i.mac
$name=$i.name ....[/code:1]



Par contre, je bloque reellement sur la condition d'erreur.

En gros, j'voudrais faire :
\&quot; Si $name exist dans le $scope alors \&quot;write-host $name existe deja\&quot;
Si ca exist pas netsh...

Voilou , merci encore pour tes conseils !!

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 3 mois #1301 par balek
Réponse de balek sur le sujet Re:Reservation DHCP
AAAAA, j'arrive pas a inclure \&quot;If\&quot; !!!

Pff, marre d'etre newbie... :silly:

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.076 secondes
Propulsé par Kunena