Question DNS settings multi cartes

Plus d'informations
il y a 1 an 7 mois #28068 par brunod
DNS settings multi cartes a été créé par brunod
bonjour,

Je cherche a développer un script qui cochera ou décochera la case \"register this connection's addresses in DNS\" selon plusieurs cas :
1) si on a une seule carte, la cache est coché
2) si on a plusieurs cartes réseaux, si le réseau est \"admin\" on decoche, et le reseau est \"prod\" on décoche.

voici ce que j'ai commencé a faire, mais je tourne en rond....

[code:1]cls
#obtenir les cartes reseaux
$NIC=(gwmi Win32_NetworkAdapterConfiguration|?{$_.ipenabled})
#Obtenir les addresses IP des cartes reseaux
#(gwmi Win32_NetworkAdapterConfiguration|?{$_.ipenabled}) | ForEach-Object {$_.ipaddress}
$ipaddresses = (gwmi Win32_NetworkAdapterConfiguration|?{$_.ipenabled}) | ForEach-Object {$_.ipaddress}


#comptage des cartes reseaux actives
$ipcount = ($ipaddresses | measure).count

#Definir les subnets
$admin_start = \"10.6.37.0\"
$admin_end = \"10.6.37.254\"
$prod_start = \"10.5.72.0\"
$prod_end = \"10.5.73.254\"

#Definir les ip des dns
$DNSServers=\"10.5.40.40\",\"10.6.37.19\",\"10.6.39.51\"

##################### Funtion test-ipaddressinrange #######################################
function Test-IpAddressInRange {
[CmdletBinding()]
param (
[Parameter(Position = 0, Mandatory = $true)][ipaddress]$from,
[Parameter(Position = 1, Mandatory = $true)][ipaddress]$to,
[Parameter(Position = 2, Mandatory = $true)][ipaddress]$target
)
$f=$from.GetAddressBytes()|%{\"{0:000}\" -f $_} | & {$ofs='-';\"$input\"}
$t=$to.GetAddressBytes()|%{\"{0:000}\" -f $_} | & {$ofs='-';\"$input\"}
$tg=$target.GetAddressBytes()|%{\"{0:000}\" -f $_} | & {$ofs='-';\"$input\"}
return ($f -le $tg) -and ($t -ge $tg)
}

# Example :
#Test-IpAddressInRange \"192.168.0.1\" \"192.168.0.100\" \"192.168.0.1\"
#True
#Test-IpAddressInRange \"192.168.0.1\" \"192.168.0.100\" \"192.168.0.101\"
#False
#############################################################################################
#Test-IpAddressInRange $admin_start $admin_end \"192.168.0.101\"

if ($ipcount -eq 1)
{
$NIC.SetDNSServerSearchOrder($DNSServers)
$NIC.SetDynamicDNSRegistration($TRUE)
}

if ($ipcount -eq 2)
{
ForEach ($i in $ipaddresses)
{
$i
$test=Test-IpAddressInRange $admin_start $admin_end $i
if($test -eq \"true\"«») {$i}
if($test -eq \"false\"«») {$i}
}
}


[/code:1]

de l'aide serait vraiment la bienvenue.

Merci par avance.

PS : bien sur tous mes serveurs n'ont que du powershell v2... Merci mon client !!

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

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