Question
DNS settings multi cartes
- brunod
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 5 ans 2 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 !!
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.063 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- DNS settings multi cartes