powershell

DHCP: script PS1 per aggiungere scope DHCP da un file CSV

Una della più grandi novità delle release di windows server dalla 2008 in poi è la powershell che, sebbene all’inizio possa sembrare poco amichevole, dopo qualche tempo diventa indispensabile per alcune operazioni.

Supponete infatti di dover eseguire delle operazioni ripetitive come ad esempio l’aggiunta di oltre cento scope DHCP con tutti i parametri, dovendo farlo utilizzando la GUI di certo avrete bisogno di parecchio tempo.

Grazie alla powershell ed ad uno script PS1, invece, questa operazione la potrete eseguire in pochi secondi.

Per prima cosa dovrete creavi un file CSV al cui interno vi siano i valori degli scope che volete creare:

Scope_Name,Scope_Mask,Scope_Description,Scope_Start,Scope_End,Scope_Router
192.168.189.64,255.255.255.192,"Sede1",192.168.189.116,192.168.189.118,192.168.189.126
192.168.190.64,255.255.255.192,"Sede2",192.168.190.116,192.168.190.118,192.168.190.126

Fatto questo usate il seguente script:

Param($csvpath)
$networks = import-csv $csvpath

$DHCP_Server="172.16.3.201"

foreach($network in $networks)
{

   $Scope_Name=$network.Scope_Name
   $Scope_Mask=$network.Scope_Mask
   $Scope_Description=$network.Scope_Description
   $Scope_Start=$network.Scope_Start
   $Scope_End=$network.Scope_End
   $Scope_Router=$network.Scope_Router
   netsh dhcp server $DHCP_Server add scope $Scope_Name $Scope_Mask $Scope_Description
   netsh dhcp server $DHCP_Server scope $Scope_Name add iprange $Scope_Start $Scope_End
   netsh dhcp server $DHCP_Server scope $Scope_Name set optionvalue 003 IPADDRESS $Scope_Router
   netsh dhcp server $DHCP_Server scope $Scope_Name set optionvalue 51 DWORD 28800
   netsh dhcp server $DHCP_Server scope $Scope_Name set state 1
}

Salvato questo script come add-dhcp_scopes.ps1 lo potete lanciare passando come parametro il file CSV

add-dhcp_scopes.ps1 dhcp.csv