Configuration réseau sous Windows Server

Aperçu

Cet article explique comment gérer de manière unifiée la configuration réseau de Windows Server avec PowerShell.
Nous abordons l’adresse IP statique, la configuration DNS, la priorité de routage et les points d’attention en environnement multi-NIC.


Convention de variables

Variable Exemple Description
<<INTERFACE_ALIAS>> Ethernet0 Nom de l’adaptateur réseau ciblé
<<IP_ADDRESS>> 192.168.10.100 Adresse IP fixe
<<PREFIX_LENGTH>> 24 Longueur de préfixe (ex. 24 pour 255.255.255.0)
<<GATEWAY>> 192.168.10.1 Passerelle par défaut
<<DNS1>> 192.168.10.10 Serveur DNS primaire
<<DNS2>> 8.8.8.8 Serveur DNS secondaire (optionnel)

Étape 1 : Vérifier l’état réseau actuel

Listez les NIC et examinez la configuration IP.

# Lister les adaptateurs
Get-NetAdapter | Select-Object Name, Status, MacAddress, LinkSpeed

# Afficher la configuration IP
Get-NetIPAddress | Select-Object InterfaceAlias, IPAddress, PrefixLength, DefaultGateway, PrefixOrigin
OriginType Signification Remarque
Manual Adresse statique définie manuellement Via PowerShell ou l’interface graphique
DHCP Adresse attribuée automatiquement par le serveur DHCP Activée avec Set-NetIPInterface -Dhcp Enabled
WellKnown Adresse réservée système (link-local/APIPA) Par ex. 169.254.x.x si DHCP est indisponible

Étape 2 : Passer de DHCP à IP statique

Désactivez DHCP et définissez une IP fixe.

# Désactiver le DHCP
Set-NetIPInterface -InterfaceAlias "<<INTERFACE_ALIAS>>" -Dhcp Disabled

# Supprimer l’adresse fournie par DHCP (si présente)
Get-NetIPAddress -InterfaceAlias "<<INTERFACE_ALIAS>>" -AddressFamily IPv4 |
  Where-Object { $_.PrefixOrigin -eq "Dhcp" } |
  Remove-NetIPAddress -Confirm:$false

# Définir l’IP statique
New-NetIPAddress `
  -InterfaceAlias "<<INTERFACE_ALIAS>>" `
  -IPAddress "<<IP_ADDRESS>>" `
  -PrefixLength <<PREFIX_LENGTH>> `
  -DefaultGateway "<<GATEWAY>>"

Attention :
Utilisez Remove-NetIPAddress uniquement pour retirer une attribution DHCP.
Ne l’exécutez pas sur l’interface utilisée par votre session distante, sous peine de coupure.


Étape 3 : Définir les serveurs DNS

Spécifiez les serveurs DNS et vérifiez l’application.

# Configurer les adresses DNS
Set-DnsClientServerAddress `
  -InterfaceAlias "<<INTERFACE_ALIAS>>" `
  -ServerAddresses ("<<DNS1>>","<<DNS2>>")

# Vérifier la configuration
Get-DnsClientServerAddress -InterfaceAlias "<<INTERFACE_ALIAS>>"

Vider le cache DNS et tester la résolution :

Clear-DnsClientCache
Resolve-DnsName "www.microsoft.com"

Étape 4 : Définir la priorité en environnement multi-NIC

Sur les serveurs disposant de plusieurs réseaux, contrôlez la priorité de routage via InterfaceMetric.
Plus la valeur est petite, plus la priorité est élevée.

# Afficher les priorités actuelles
Get-NetIPInterface | Sort-Object -Property InterfaceMetric |
  Select-Object InterfaceAlias, AddressFamily, InterfaceMetric

# Modifier la priorité (donner la priorité à l’interface d’administration)
Set-NetIPInterface -InterfaceAlias "<<INTERFACE_ALIAS>>" -InterfaceMetric 10

Valeurs recommandées :

  • LAN d’administration : 10
  • LAN de sauvegarde : 20–50
  • Trafic cluster/iSCSI : 100 et plus

Étape 5 : Vérifications de fonctionnement

# Atteignabilité de la passerelle
Test-Connection "<<GATEWAY>>" -Count 4

# Test de résolution de noms
Resolve-DnsName "www.microsoft.com"

Astuce :
Si la configuration DNS ne s’applique pas, redémarrez le service client DNS :

net stop dnscache && net start dnscache

Étape 6 : Désactiver IPv6 (selon la politique)

Par défaut, IPv4 et IPv6 coexistent. Si votre environnement n’utilise pas IPv6, vous pouvez le désactiver pour éviter des routes/annonces et des variations de résolution non souhaitées.

# État du binding IPv6
Get-NetAdapterBinding `
  -InterfaceAlias "<<INTERFACE_ALIAS>>" `
  -ComponentID "ms_tcpip6"

# Désactiver IPv6
Disable-NetAdapterBinding `
  -InterfaceAlias "<<INTERFACE_ALIAS>>" `
  -ComponentID "ms_tcpip6" `
  -PassThru

# Re-contrôle
Get-NetAdapterBinding `
  -InterfaceAlias "<<INTERFACE_ALIAS>>" `
  -ComponentID "ms_tcpip6"

Réactiver IPv6 :

Enable-NetAdapterBinding `
  -InterfaceAlias "<<INTERFACE_ALIAS>>" `
  -ComponentID "ms_tcpip6"

Étape 7 : Bonnes pratiques

  • Figer les noms des NIC
    Évitez les changements automatiques en attribuant un nom de gestion :

    Rename-NetAdapter -Name "<<INTERFACE_ALIAS>>" -NewName "LAN-Primary"
    
  • Supprimer les routes inutiles
    Limitez les routes par défaut en double ou incorrectes :

    Get-NetRoute -AddressFamily IPv4
    Remove-NetRoute -DestinationPrefix "0.0.0.0/0" -InterfaceAlias "BackupNIC" -Confirm:$false
    

Activer/Désactiver un adaptateur réseau

# Désactiver l’adaptateur
Disable-NetAdapter -Name "<<INTERFACE_ALIAS>>" -Confirm:$false
# Activer l’adaptateur
Enable-NetAdapter -Name "<<INTERFACE_ALIAS>>"

Supprimer l’IP statique et revenir au DHCP

Remove-NetIPAddress -InterfaceAlias "<<INTERFACE_ALIAS>>" -IPAddress "<<IP_ADDRESS>>" -Confirm:$false
Set-NetIPInterface -InterfaceAlias "<<INTERFACE_ALIAS>>" -Dhcp Enabled

Conclusion

Avec PowerShell, la configuration réseau de Windows Server devient précise, reproductible et automatisable.
Sur les hôtes multi-NIC, la priorité de routage et une configuration DNS explicite sont cruciales pour la stabilité.
Intégrez des scripts dès l’initialisation pour standardiser et accélérer les déploiements et reconstructions.