Je suis en train de faire des scripts pour automatiser le paramétrage
du DHCP
de certains serveurs 2003 et deux questions bêtes me viennent :
1. le paramètre 003 ("Routeur") correspond-il , comme je le crois
à ce que l'on nomme habituellement "passerelle" ?
2. Comment puis savoir, avec un script
a. Si une étendue dhcp est définie et active
b. sa taille ( elle suffisante ...)
c. sa "base" pour y ajouter quelques paramètres avec
netsh dhcp server scope xxx.xxx.xxx.xxx set optionvalue
XXX #Type# #Valeur#
(sur les param 003, 006, 066 et 067)
le script sera lancé sur le serveur..
pour le moment je n'ai que du bat mais pour vérifier l'existence de
l'étendue et son adresse
je me doute qu'il va falloir passer à qqchose de moins rustique ...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thierry DEMAN [MVP]
Bonjour,
oui, le paramètre 003 correspond à l'adresse de la passerelle TCPIP.
Pour configurer au mieux, utiliser la librairie "dhcpobjs.dll" fournie dans le kit de ressources. Des exemples de scripts (VBS) sont fournis !
En voici un exemple que j'ai réalisé pour gérer une plage avec uniquement des exclusions et des réservations :
------------------------------------------------------------------------------- ' Thierry DEMAN () 'on error resume next ' Version 1.2 Ajout des options sur l'étendue
' ************** Initialisation des objets ***** Dim objFS, WshShell,WshNetwork, dhcpmgr,dhcpsrvr,dhcpscopes,scope
SET wshshell = createObject ("Wscript.shell") SET wshnetwork = createObject ("Wscript.Network") SET objFS= CreateObject ("Scripting.FileSystemObject") ' server = Wshshell.ExpandEnvironmentStrings("%COMPUTERNAME%")
' *************** initialisation des variables *****
DIM Nb, I, res(), ip(), mac(), Excl(),Excl2(),info(),macX,ipX,alpha
' Récupération de l'adresse IP locale et du réseau iploc=getipaddress xpos=instr(IpLoc,".") xpos=instr(xpos+1,IpLoc,".") ipnet=mid(iploc,1,xpos-1) 'wscript.echo ipnet
' ************* Accès à l'objet DHCP ************* Set dhcpmgr = CreateObject("Dhcp.Manager") on error resume next Set dhcpsrvr = dhcpmgr.Servers.Connect(IpNet+".1.1") IF err.number<>0 Then MsgBox("Serveur DHCP introuvé") err.clear wscript.quit End If on error GOTO 0
'wscript.echo "*** Reservations ***" For i = 1 To NB res(i)= Scope.Reservations.Item(i).name mac(i)= Scope.Reservations.Item(i).UniqueID ip(i)= Cstr(Scope.Reservations.Item(i).Address) info(i)= Scope.Reservations.Item(i).Comment ' wscript.echo mac(i),ip(i) Next
'wscript.echo "*** Exclusions ***" For i = 1 To NBX excl(i)= Scope.Exclusions.Item(i).startAddress excl2(i)= Scope.Exclusions.Item(i).EndAddress ' wscript.echo Excl(i),Excl2(i) Next 'wscript.quit
'*****PROGRAMME PRINCIPAL****** Message="Réservations="+Cstr(NB)+" Exclusions="+Cstr(NBX)+CHR(13)+CHR(13) Message=Message+"1: Ajouter une adresse réseau"+CHR(13)+CHR(13) Message=Message+"2: Retirer une adresse réseau"+CHR(13)+CHR(13) Message=Message+"(Q) pour quitter"+CHR(13)+CHR(13)
NBM=2 X="" Do X=trim(INPUTBOX(Message,"Gestion des réservations (ou Q pour quitter)")) If Ucase(X)="Q" OR Len(X)=0 Then X=NBM+1 Loop Until X>="1" AND X<=CSTR(NBM)
select case X ' ******************** Ajout ******************** case "1"
' vérifier 12 chiffres hexa DO macX=Cstr(inputbox("saisir l'adresse mac")) IF macX="" THEN wscript.quit END if Loop Until testNum(macX) = True AND LEN(macX) = 12
' vérifier la présence éventuelle de la mac For i = 1 to NB ' wscript.echo len(mac(i)),len(macX),Ip(i),macx,mac(i) If left(mac(i),12) = ucase(trim(macX)) Then msgbox "Adresse Mac déjà connue" wscript.quit End if Next
' rechercher la 1ère exclusion disponible à partir de 50 If NBX>0 Then IpX=Excl(1) DelExcl(IpX) AddRes MacX,IpX End if
case "2" '******************* Suppression *********** ' vérifier 12 chiffres hexa DO macX=Cstr(inputbox("saisir l'adresse mac")) IF macX="" THEN wscript.quit END if Loop Until testNum(macX) = True AND LEN(macX) = 12
' rechercher la mac For i = 1 to NB ' wscript.echo len(mac(i)),len(macX),Ip(i),macx,mac(i) If left(mac(i),12) = ucase(trim(macX)) Then ' wscript.echo "Trouvé" Ipx=Ip(i) DelRes(IpX) AddExcl(IpX) Exit For End if Next end select
'IF Len(Scope)>0 Then ' AddRes ' AddExcl 'End If
dhcpsrvr.Disconnect
' ***************** Fin du programme principal ******************
' ******* Ajout d'une réservation ***** Function AddRes(Mac,Ip) Dim newRes set newres=scope.Reservations.createnew newRes.Name = mac newRes.UniqueID = Mac newRes.Address = Ip ' newRes.Comment = "userinfo2" newRes.Update End Function
' ******* Ajout d'une Exclusion ***** Function AddExcl(Addip) Dim newExcl set newExcl=scope.Exclusions.createnew newExcl.StartAddress = AddIp newExcl.EndAddress = AddIp newExcl.Update End Function
' ***** Suppression d'une réservation ***** Function DelRes(DelIp) Dim Excl For i = 1 TO NB ' wscript.echo len(scope.Reservations.item(i).address),len(delIp) 'l=len(scope.Reservations.item(i).address) if scope.Reservations.item(i).addressÞlIp Then ' wscript.echo DelIp+" Trouvé" scope.Reservations.item(i).delete exit for End if next End Function
' ***** Suppression d'une Exclusion ***** Function DelExcl(DelIp) Dim Excl For i = 1 TO NBX ' wscript.echo scope.Exclusions.item(i).startaddress if scope.Exclusions.item(i).startaddressÞlIp Then scope.Exclusions.item(i).delete exit for End if next End Function
' ***** Créer l'étendue initiale ***** Function CreateScope(net) net2=net+".1" dhcpsrvr.Scopes.Add net2+".50", net2+".149", "255.255.255.0","ScopeReserve", "Zone réservée", True dhcpsrvr.Scopes.refresh SearchScope For i=0 TO 99 AddExcl(net2+"."+CStr(50+i)) ' Wscript.echo net2+"."+CStr(50+i) next 'on error resume next ' Ajouts des options Scope.Options.Add 3, ARRAY(net+".1.254") Scope.Options.Add 6, ARRAY(net+".1.1",net+".1.2") Scope.Options.Add 44, ARRAY(net+".1.1") Scope.Options.Add 46, cbyte(8) Scope.Options.Add 15, Wshshell.ExpandEnvironmentStrings("%USERDNSDOMAIN%") Scope.Options.Add 51, 691200 End Function
' ***** Rechercher l'étendue ***** Function SearchScope
on error resume next For i = 1 To dhcpscopes.Count IF err.number<>0 Then MsgBox("Serveur DHCP: permission refusée") err.clear wscript.quit End If
Scope="" If dhcpscopes.Item(i).Name = "ScopeReserve" Then set Scope=dhcpscopes.Item(i) Exit for End If Next on error GOTO 0 End Function
' ***** Tester la valeur Hexa saisie ***** function testNum(S) hexa=true FOR I= 1 TO LEN(S) lettre=MID(S,I,1) IF Instr(alpha,LCASE(lettre))=0 THEN hexaúlse msgbox "caractère "&lettre&" impossible dans une adresse MAC" testnum = hexa exit function END IF NEXT testnum = hexa End function
' ***** Récupérer l'adresse IP locale ***** Function GetIPAddress
set IPConfigSet = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery _ ("select IPAddress from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
for each IPConfig in IPConfigSet if Not IsNull(IPConfig.IPAddress) then for i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress) GetIpAddress=IPConfig.IPAddress(i) next end if next End Function
-- Thierry DEMAN-BARCELÒ MVP Exchange, SQL/Server http://base.faqexchange.info http://www.faqexchange.info http://ISAFirewalls.org "moi" a écrit dans le message de news:em%
bonjour,
Je suis en train de faire des scripts pour automatiser le paramétrage du DHCP de certains serveurs 2003 et deux questions bêtes me viennent :
1. le paramètre 003 ("Routeur") correspond-il , comme je le crois à ce que l'on nomme habituellement "passerelle" ?
2. Comment puis savoir, avec un script a. Si une étendue dhcp est définie et active b. sa taille ( elle suffisante ...) c. sa "base" pour y ajouter quelques paramètres avec
netsh dhcp server scope xxx.xxx.xxx.xxx set optionvalue XXX #Type# #Valeur#
(sur les param 003, 006, 066 et 067)
le script sera lancé sur le serveur..
pour le moment je n'ai que du bat mais pour vérifier l'existence de l'étendue et son adresse je me doute qu'il va falloir passer à qqchose de moins rustique ...
Merci d'avance,
HB
Bonjour,
oui, le paramètre 003 correspond à l'adresse de la passerelle TCPIP.
Pour configurer au mieux, utiliser la librairie "dhcpobjs.dll" fournie dans
le kit de ressources.
Des exemples de scripts (VBS) sont fournis !
En voici un exemple que j'ai réalisé pour gérer une plage avec uniquement
des exclusions et des réservations :
-------------------------------------------------------------------------------
' Thierry DEMAN (tdeman@free.fr)
'on error resume next
' Version 1.2 Ajout des options sur l'étendue
' ************** Initialisation des objets *****
Dim objFS, WshShell,WshNetwork, dhcpmgr,dhcpsrvr,dhcpscopes,scope
SET wshshell = createObject ("Wscript.shell")
SET wshnetwork = createObject ("Wscript.Network")
SET objFS= CreateObject ("Scripting.FileSystemObject")
' server = Wshshell.ExpandEnvironmentStrings("%COMPUTERNAME%")
' *************** initialisation des variables *****
DIM Nb, I, res(), ip(), mac(), Excl(),Excl2(),info(),macX,ipX,alpha
' Récupération de l'adresse IP locale et du réseau
iploc=getipaddress
xpos=instr(IpLoc,".")
xpos=instr(xpos+1,IpLoc,".")
ipnet=mid(iploc,1,xpos-1)
'wscript.echo ipnet
' ************* Accès à l'objet DHCP *************
Set dhcpmgr = CreateObject("Dhcp.Manager")
on error resume next
Set dhcpsrvr = dhcpmgr.Servers.Connect(IpNet+".1.1")
IF err.number<>0 Then
MsgBox("Serveur DHCP introuvé")
err.clear
wscript.quit
End If
on error GOTO 0
'wscript.echo "*** Reservations ***"
For i = 1 To NB
res(i)= Scope.Reservations.Item(i).name
mac(i)= Scope.Reservations.Item(i).UniqueID
ip(i)= Cstr(Scope.Reservations.Item(i).Address)
info(i)= Scope.Reservations.Item(i).Comment
' wscript.echo mac(i),ip(i)
Next
'wscript.echo "*** Exclusions ***"
For i = 1 To NBX
excl(i)= Scope.Exclusions.Item(i).startAddress
excl2(i)= Scope.Exclusions.Item(i).EndAddress
' wscript.echo Excl(i),Excl2(i)
Next
'wscript.quit
'*****PROGRAMME PRINCIPAL******
Message="Réservations="+Cstr(NB)+" Exclusions="+Cstr(NBX)+CHR(13)+CHR(13)
Message=Message+"1: Ajouter une adresse réseau"+CHR(13)+CHR(13)
Message=Message+"2: Retirer une adresse réseau"+CHR(13)+CHR(13)
Message=Message+"(Q) pour quitter"+CHR(13)+CHR(13)
NBM=2
X=""
Do
X=trim(INPUTBOX(Message,"Gestion des réservations (ou Q pour quitter)"))
If Ucase(X)="Q" OR Len(X)=0 Then X=NBM+1
Loop Until X>="1" AND X<=CSTR(NBM)
select case X
' ******************** Ajout ********************
case "1"
' vérifier 12 chiffres hexa
DO
macX=Cstr(inputbox("saisir l'adresse mac"))
IF macX="" THEN
wscript.quit
END if
Loop Until testNum(macX) = True AND LEN(macX) = 12
' vérifier la présence éventuelle de la mac
For i = 1 to NB
' wscript.echo len(mac(i)),len(macX),Ip(i),macx,mac(i)
If left(mac(i),12) = ucase(trim(macX)) Then
msgbox "Adresse Mac déjà connue"
wscript.quit
End if
Next
' rechercher la 1ère exclusion disponible à partir de 50
If NBX>0 Then
IpX=Excl(1)
DelExcl(IpX)
AddRes MacX,IpX
End if
case "2"
'******************* Suppression ***********
' vérifier 12 chiffres hexa
DO
macX=Cstr(inputbox("saisir l'adresse mac"))
IF macX="" THEN
wscript.quit
END if
Loop Until testNum(macX) = True AND LEN(macX) = 12
' rechercher la mac
For i = 1 to NB
' wscript.echo len(mac(i)),len(macX),Ip(i),macx,mac(i)
If left(mac(i),12) = ucase(trim(macX)) Then
' wscript.echo "Trouvé"
Ipx=Ip(i)
DelRes(IpX)
AddExcl(IpX)
Exit For
End if
Next
end select
'IF Len(Scope)>0 Then
' AddRes
' AddExcl
'End If
dhcpsrvr.Disconnect
' ***************** Fin du programme principal ******************
' ******* Ajout d'une réservation *****
Function AddRes(Mac,Ip)
Dim newRes
set newres=scope.Reservations.createnew
newRes.Name = mac
newRes.UniqueID = Mac
newRes.Address = Ip
' newRes.Comment = "userinfo2"
newRes.Update
End Function
' ******* Ajout d'une Exclusion *****
Function AddExcl(Addip)
Dim newExcl
set newExcl=scope.Exclusions.createnew
newExcl.StartAddress = AddIp
newExcl.EndAddress = AddIp
newExcl.Update
End Function
' ***** Suppression d'une réservation *****
Function DelRes(DelIp)
Dim Excl
For i = 1 TO NB
' wscript.echo len(scope.Reservations.item(i).address),len(delIp)
'l=len(scope.Reservations.item(i).address)
if scope.Reservations.item(i).addressÞlIp Then
' wscript.echo DelIp+" Trouvé"
scope.Reservations.item(i).delete
exit for
End if
next
End Function
' ***** Suppression d'une Exclusion *****
Function DelExcl(DelIp)
Dim Excl
For i = 1 TO NBX
' wscript.echo scope.Exclusions.item(i).startaddress
if scope.Exclusions.item(i).startaddressÞlIp Then
scope.Exclusions.item(i).delete
exit for
End if
next
End Function
' ***** Créer l'étendue initiale *****
Function CreateScope(net)
net2=net+".1"
dhcpsrvr.Scopes.Add net2+".50", net2+".149",
"255.255.255.0","ScopeReserve", "Zone réservée", True
dhcpsrvr.Scopes.refresh
SearchScope
For i=0 TO 99
AddExcl(net2+"."+CStr(50+i))
' Wscript.echo net2+"."+CStr(50+i)
next
'on error resume next
' Ajouts des options
Scope.Options.Add 3, ARRAY(net+".1.254")
Scope.Options.Add 6, ARRAY(net+".1.1",net+".1.2")
Scope.Options.Add 44, ARRAY(net+".1.1")
Scope.Options.Add 46, cbyte(8)
Scope.Options.Add 15, Wshshell.ExpandEnvironmentStrings("%USERDNSDOMAIN%")
Scope.Options.Add 51, 691200
End Function
' ***** Rechercher l'étendue *****
Function SearchScope
on error resume next
For i = 1 To dhcpscopes.Count
IF err.number<>0 Then
MsgBox("Serveur DHCP: permission refusée")
err.clear
wscript.quit
End If
Scope=""
If dhcpscopes.Item(i).Name = "ScopeReserve" Then
set Scope=dhcpscopes.Item(i)
Exit for
End If
Next
on error GOTO 0
End Function
' ***** Tester la valeur Hexa saisie *****
function testNum(S)
hexa=true
FOR I= 1 TO LEN(S)
lettre=MID(S,I,1)
IF Instr(alpha,LCASE(lettre))=0 THEN
hexaúlse
msgbox "caractère "&lettre&" impossible dans une adresse MAC"
testnum = hexa
exit function
END IF
NEXT
testnum = hexa
End function
' ***** Récupérer l'adresse IP locale *****
Function GetIPAddress
set IPConfigSet =
GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery _
("select IPAddress from Win32_NetworkAdapterConfiguration where
IPEnabled=TRUE")
for each IPConfig in IPConfigSet
if Not IsNull(IPConfig.IPAddress) then
for i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress)
GetIpAddress=IPConfig.IPAddress(i)
next
end if
next
End Function
--
Thierry DEMAN-BARCELÒ
MVP Exchange, SQL/Server
http://base.faqexchange.info http://www.faqexchange.info
http://ISAFirewalls.org
"moi" <moi@pas.la.ici> a écrit dans le message de
news:em%23rQMMmHHA.2060@TK2MSFTNGP05.phx.gbl...
bonjour,
Je suis en train de faire des scripts pour automatiser le paramétrage du
DHCP
de certains serveurs 2003 et deux questions bêtes me viennent :
1. le paramètre 003 ("Routeur") correspond-il , comme je le crois
à ce que l'on nomme habituellement "passerelle" ?
2. Comment puis savoir, avec un script
a. Si une étendue dhcp est définie et active
b. sa taille ( elle suffisante ...)
c. sa "base" pour y ajouter quelques paramètres avec
netsh dhcp server scope xxx.xxx.xxx.xxx set optionvalue XXX
#Type# #Valeur#
(sur les param 003, 006, 066 et 067)
le script sera lancé sur le serveur..
pour le moment je n'ai que du bat mais pour vérifier l'existence de
l'étendue et son adresse
je me doute qu'il va falloir passer à qqchose de moins rustique ...
oui, le paramètre 003 correspond à l'adresse de la passerelle TCPIP.
Pour configurer au mieux, utiliser la librairie "dhcpobjs.dll" fournie dans le kit de ressources. Des exemples de scripts (VBS) sont fournis !
En voici un exemple que j'ai réalisé pour gérer une plage avec uniquement des exclusions et des réservations :
------------------------------------------------------------------------------- ' Thierry DEMAN () 'on error resume next ' Version 1.2 Ajout des options sur l'étendue
' ************** Initialisation des objets ***** Dim objFS, WshShell,WshNetwork, dhcpmgr,dhcpsrvr,dhcpscopes,scope
SET wshshell = createObject ("Wscript.shell") SET wshnetwork = createObject ("Wscript.Network") SET objFS= CreateObject ("Scripting.FileSystemObject") ' server = Wshshell.ExpandEnvironmentStrings("%COMPUTERNAME%")
' *************** initialisation des variables *****
DIM Nb, I, res(), ip(), mac(), Excl(),Excl2(),info(),macX,ipX,alpha
' Récupération de l'adresse IP locale et du réseau iploc=getipaddress xpos=instr(IpLoc,".") xpos=instr(xpos+1,IpLoc,".") ipnet=mid(iploc,1,xpos-1) 'wscript.echo ipnet
' ************* Accès à l'objet DHCP ************* Set dhcpmgr = CreateObject("Dhcp.Manager") on error resume next Set dhcpsrvr = dhcpmgr.Servers.Connect(IpNet+".1.1") IF err.number<>0 Then MsgBox("Serveur DHCP introuvé") err.clear wscript.quit End If on error GOTO 0
'wscript.echo "*** Reservations ***" For i = 1 To NB res(i)= Scope.Reservations.Item(i).name mac(i)= Scope.Reservations.Item(i).UniqueID ip(i)= Cstr(Scope.Reservations.Item(i).Address) info(i)= Scope.Reservations.Item(i).Comment ' wscript.echo mac(i),ip(i) Next
'wscript.echo "*** Exclusions ***" For i = 1 To NBX excl(i)= Scope.Exclusions.Item(i).startAddress excl2(i)= Scope.Exclusions.Item(i).EndAddress ' wscript.echo Excl(i),Excl2(i) Next 'wscript.quit
'*****PROGRAMME PRINCIPAL****** Message="Réservations="+Cstr(NB)+" Exclusions="+Cstr(NBX)+CHR(13)+CHR(13) Message=Message+"1: Ajouter une adresse réseau"+CHR(13)+CHR(13) Message=Message+"2: Retirer une adresse réseau"+CHR(13)+CHR(13) Message=Message+"(Q) pour quitter"+CHR(13)+CHR(13)
NBM=2 X="" Do X=trim(INPUTBOX(Message,"Gestion des réservations (ou Q pour quitter)")) If Ucase(X)="Q" OR Len(X)=0 Then X=NBM+1 Loop Until X>="1" AND X<=CSTR(NBM)
select case X ' ******************** Ajout ******************** case "1"
' vérifier 12 chiffres hexa DO macX=Cstr(inputbox("saisir l'adresse mac")) IF macX="" THEN wscript.quit END if Loop Until testNum(macX) = True AND LEN(macX) = 12
' vérifier la présence éventuelle de la mac For i = 1 to NB ' wscript.echo len(mac(i)),len(macX),Ip(i),macx,mac(i) If left(mac(i),12) = ucase(trim(macX)) Then msgbox "Adresse Mac déjà connue" wscript.quit End if Next
' rechercher la 1ère exclusion disponible à partir de 50 If NBX>0 Then IpX=Excl(1) DelExcl(IpX) AddRes MacX,IpX End if
case "2" '******************* Suppression *********** ' vérifier 12 chiffres hexa DO macX=Cstr(inputbox("saisir l'adresse mac")) IF macX="" THEN wscript.quit END if Loop Until testNum(macX) = True AND LEN(macX) = 12
' rechercher la mac For i = 1 to NB ' wscript.echo len(mac(i)),len(macX),Ip(i),macx,mac(i) If left(mac(i),12) = ucase(trim(macX)) Then ' wscript.echo "Trouvé" Ipx=Ip(i) DelRes(IpX) AddExcl(IpX) Exit For End if Next end select
'IF Len(Scope)>0 Then ' AddRes ' AddExcl 'End If
dhcpsrvr.Disconnect
' ***************** Fin du programme principal ******************
' ******* Ajout d'une réservation ***** Function AddRes(Mac,Ip) Dim newRes set newres=scope.Reservations.createnew newRes.Name = mac newRes.UniqueID = Mac newRes.Address = Ip ' newRes.Comment = "userinfo2" newRes.Update End Function
' ******* Ajout d'une Exclusion ***** Function AddExcl(Addip) Dim newExcl set newExcl=scope.Exclusions.createnew newExcl.StartAddress = AddIp newExcl.EndAddress = AddIp newExcl.Update End Function
' ***** Suppression d'une réservation ***** Function DelRes(DelIp) Dim Excl For i = 1 TO NB ' wscript.echo len(scope.Reservations.item(i).address),len(delIp) 'l=len(scope.Reservations.item(i).address) if scope.Reservations.item(i).addressÞlIp Then ' wscript.echo DelIp+" Trouvé" scope.Reservations.item(i).delete exit for End if next End Function
' ***** Suppression d'une Exclusion ***** Function DelExcl(DelIp) Dim Excl For i = 1 TO NBX ' wscript.echo scope.Exclusions.item(i).startaddress if scope.Exclusions.item(i).startaddressÞlIp Then scope.Exclusions.item(i).delete exit for End if next End Function
' ***** Créer l'étendue initiale ***** Function CreateScope(net) net2=net+".1" dhcpsrvr.Scopes.Add net2+".50", net2+".149", "255.255.255.0","ScopeReserve", "Zone réservée", True dhcpsrvr.Scopes.refresh SearchScope For i=0 TO 99 AddExcl(net2+"."+CStr(50+i)) ' Wscript.echo net2+"."+CStr(50+i) next 'on error resume next ' Ajouts des options Scope.Options.Add 3, ARRAY(net+".1.254") Scope.Options.Add 6, ARRAY(net+".1.1",net+".1.2") Scope.Options.Add 44, ARRAY(net+".1.1") Scope.Options.Add 46, cbyte(8) Scope.Options.Add 15, Wshshell.ExpandEnvironmentStrings("%USERDNSDOMAIN%") Scope.Options.Add 51, 691200 End Function
' ***** Rechercher l'étendue ***** Function SearchScope
on error resume next For i = 1 To dhcpscopes.Count IF err.number<>0 Then MsgBox("Serveur DHCP: permission refusée") err.clear wscript.quit End If
Scope="" If dhcpscopes.Item(i).Name = "ScopeReserve" Then set Scope=dhcpscopes.Item(i) Exit for End If Next on error GOTO 0 End Function
' ***** Tester la valeur Hexa saisie ***** function testNum(S) hexa=true FOR I= 1 TO LEN(S) lettre=MID(S,I,1) IF Instr(alpha,LCASE(lettre))=0 THEN hexaúlse msgbox "caractère "&lettre&" impossible dans une adresse MAC" testnum = hexa exit function END IF NEXT testnum = hexa End function
' ***** Récupérer l'adresse IP locale ***** Function GetIPAddress
set IPConfigSet = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery _ ("select IPAddress from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
for each IPConfig in IPConfigSet if Not IsNull(IPConfig.IPAddress) then for i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress) GetIpAddress=IPConfig.IPAddress(i) next end if next End Function
-- Thierry DEMAN-BARCELÒ MVP Exchange, SQL/Server http://base.faqexchange.info http://www.faqexchange.info http://ISAFirewalls.org "moi" a écrit dans le message de news:em%
bonjour,
Je suis en train de faire des scripts pour automatiser le paramétrage du DHCP de certains serveurs 2003 et deux questions bêtes me viennent :
1. le paramètre 003 ("Routeur") correspond-il , comme je le crois à ce que l'on nomme habituellement "passerelle" ?
2. Comment puis savoir, avec un script a. Si une étendue dhcp est définie et active b. sa taille ( elle suffisante ...) c. sa "base" pour y ajouter quelques paramètres avec
netsh dhcp server scope xxx.xxx.xxx.xxx set optionvalue XXX #Type# #Valeur#
(sur les param 003, 006, 066 et 067)
le script sera lancé sur le serveur..
pour le moment je n'ai que du bat mais pour vérifier l'existence de l'étendue et son adresse je me doute qu'il va falloir passer à qqchose de moins rustique ...
Merci d'avance,
HB
moi
Notre ami Thierry DEMAN [MVP] tapota :
Bonjour,
oui, le paramètre 003 correspond à l'adresse de la passerelle TCPIP.
Pour configurer au mieux, utiliser la librairie "dhcpobjs.dll" fournie dans le kit de ressources. Des exemples de scripts (VBS) sont fournis !
En voici un exemple que j'ai réalisé pour gérer une plage avec uniquement des exclusions et des réservations :
(...)
Bonjour,
Merci beaucoup
cet exemple est largement assez riche pour que je puisse faire ce que je désire
A+
HB
Notre ami Thierry DEMAN [MVP] tapota :
Bonjour,
oui, le paramètre 003 correspond à l'adresse de la passerelle TCPIP.
Pour configurer au mieux, utiliser la librairie "dhcpobjs.dll"
fournie dans le kit de ressources.
Des exemples de scripts (VBS) sont fournis !
En voici un exemple que j'ai réalisé pour gérer une plage avec
uniquement des exclusions et des réservations :
(...)
Bonjour,
Merci beaucoup
cet exemple est largement assez riche pour que je puisse faire ce que
je désire