Question
Réservation DHCP (Résolu)
- balek
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 71
- Remerciements reçus 0
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
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.
- balek
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 71
- Remerciements reçus 0
il y a 16 ans 4 mois #1294
par balek
Réponse de balek sur le sujet Re:Reservation DHCP
Yes , j'suis arrivé !!
[code:1]
$scope=\"10.0.0.0\"
$info=import-csv c:\pwh\dhcp\info.csv
$wshshell=new-object -comobject \"wscript.shell\"
foreach($i in $info){
$ip=$i.ip
$mac=$i.mac
$name=$i.name
{$wshshell.run(\"netsh dhcp server 127.0.0.1 scope $scope add reservedip $ip $mac $name\"«»)}[/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.
[code:1]
$scope=\"10.0.0.0\"
$info=import-csv c:\pwh\dhcp\info.csv
$wshshell=new-object -comobject \"wscript.shell\"
foreach($i in $info){
$ip=$i.ip
$mac=$i.mac
$name=$i.name
{$wshshell.run(\"netsh dhcp server 127.0.0.1 scope $scope add reservedip $ip $mac $name\"«»)}[/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.
Connexion ou Créer un compte pour participer à la conversation.
- balek
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 71
- Remerciements reçus 0
il y a 16 ans 4 mois #1295
par balek
Réponse de balek sur le sujet Re:Reservation DHCP
[code:1]$scope=\"10.0.0.0\"
$info=import-csv c:\pwh\dhcp\info.csv
$wshshell=new-object -comobject \"wscript.shell\"
foreach($i in $info){
$ip=$i.ip
$mac=$i.mac
$name=$i.name
$wshshell.run(\"netsh dhcp server 127.0.0.1 scope $scope add reservedip $ip $mac $name\"«»)
$wshshell.run(\"netsh dhcp server 192.168.1.30 scope $scope add reservedip $ip $mac $name\"«»)
}[/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
$info=import-csv c:\pwh\dhcp\info.csv
$wshshell=new-object -comobject \"wscript.shell\"
foreach($i in $info){
$ip=$i.ip
$mac=$i.mac
$name=$i.name
$wshshell.run(\"netsh dhcp server 127.0.0.1 scope $scope add reservedip $ip $mac $name\"«»)
$wshshell.run(\"netsh dhcp server 192.168.1.30 scope $scope add reservedip $ip $mac $name\"«»)
}[/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.
- Jacques Barathon
- Hors Ligne
- Administrateur
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
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)
\"Arg1 = $arg1\"
\"Arg2 = $arg2\"
\"Args = $args\"
# fin de script
PS> test-args hello world comment allez-vous?
Arg1 = hello
Arg2 = world
Args = comment allez-vous?
PS> 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
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)
\"Arg1 = $arg1\"
\"Arg2 = $arg2\"
\"Args = $args\"
# fin de script
PS> test-args hello world comment allez-vous?
Arg1 = hello
Arg2 = world
Args = comment allez-vous?
PS> 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.
- balek
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 71
- Remerciements reçus 0
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=\"10.0.0.0\"
$info=import-csv c:\pwh\dhcp\info.csv
$wshshell=new-object -comobject \"wscript.shell\"
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 :
\" Si $name exist dans le $scope alors \"write-host $name existe deja\"
Si ca exist pas netsh...
Voilou , merci encore 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=\"10.0.0.0\"
$info=import-csv c:\pwh\dhcp\info.csv
$wshshell=new-object -comobject \"wscript.shell\"
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 :
\" Si $name exist dans le $scope alors \"write-host $name existe deja\"
Si ca exist pas netsh...
Voilou , merci encore pour tes conseils !!
Connexion ou Créer un compte pour participer à la conversation.
- balek
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 71
- Remerciements reçus 0
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 \"If\" !!!
Pff, marre d'etre newbie...
Pff, marre d'etre newbie...
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.076 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Réservation DHCP (Résolu)