"Failed to release DHCP lease." avec une IP fixe et SConfig?
Si vous utilisez l'outil SConfig
avec Windows Server, vous êtes peut-être déjà tombé sur le problème que je m'apprête à décrire.
Au moment de changer la configuration IP d'un serveur, le message suivant s'affiche :
Failed to release DHCP lease.
De prime aborde, le message n'est pas inquiétant. On pourrait lancer un ipconfig /renew
et retourner dans SConfig
.
Oui, mais voilà, tout n'est pas toujours aussi simple. Il se trouve que ce message d'erreur peut survenir alors que l'on utilise déjà une IP fixe.
Quelles solutions?
Pour s'en sortir, deux approches sont possibles :
- Déconnecter le câble réseau, changer la configuration et reconnecter le câble.
- Utiliser PowerShell pour ajouter une seconde IP fixe, et retirer ensuite l'ancienne IP.
La première approche est parfaitement envisageable sur une machine virtuelle. Elle n'est cependant pas envisageable sur un serveur physique géré entièrement à distance.
La seconde approche a donc ma préférence.
Comment s'y prendre?
Pour l'exemple qui suit, je vais ajouter l'IP 10.0.0.40 puis retirer l'IP 10.0.0.30.
Dans un premier temps, il faut identifier la carte réseau qui doit être manipulée. Pour cela, il suffit d'utiliser la commande :
Get-NetIPConfiguration -All
Ce qui produira un résultat similaire à ceci :
InterfaceAlias : vEthernet (Lan)
InterfaceIndex : 9
InterfaceDescription : Hyper-V Virtual Ethernet Adapter
NetProfile.Name : home.lan
IPv6Address : fe80::4%30
IPv4Address : 10.0.0.30
IPv6DefaultGateway :
IPv4DefaultGateway : 10.0.0.1
DNSServer : fe80::10
fe80::11
10.0.0.10
10.0.0.11
Si les informations affichées ne vous permettent pas d'identifier votre carte, il est possible d'utiliser la variante :
Get-NetIPConfiguration -All -Detailed
Celle-ci fournit l'intégralité des informations des différentes cartes réseau du serveur.
L'information qui nous intéresse est InterfaceIndex. Dans le cas présent, sa valeur est 9.
Cet index peut alors être utilisé pour ajouter une nouvelle IP via la commande New-NetIPAddress
.
Exemple :
New-NetIPAddress -InterfaceIndex 9 -IPAddress 10.0.0.40 -PrefixLength 24
Ce qui donne :
IPAddress : 10.0.0.40
InterfaceIndex : 9
InterfaceAlias : vEthernet (Lan)
AddressFamily : IPv4
Type : Unicast
PrefixLength : 24
PrefixOrigin : Manual
SuffixOrigin : Manual
AddressState : Tentative
ValidLifetime : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource : False
PolicyStore : ActiveStore
IPAddress : 10.0.0.40
InterfaceIndex : 9
InterfaceAlias : vEthernet (Lan)
AddressFamily : IPv4
Type : Unicast
PrefixLength : 24
PrefixOrigin : Manual
SuffixOrigin : Manual
AddressState : Invalid
ValidLifetime : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource : False
PolicyStore : PersistentStore
[shost1]: PS C:\Users\Jeremy\Documents> Get-NetIPConfiguration -All InterfaceAlias : vEthernet (Lan) InterfaceIndex : 9 InterfaceDescription : Hyper-V Virtual Ethernet Adapter NetProfile.Name : home.lan IPv6Address : fe80::4%9
IPv4Address : 10.0.0.8
10.0.0.4
IPv6DefaultGateway :
IPv4DefaultGateway : 10.0.0.1
DNSServer : fe80::10
fe80::11
10.0.0.10
10.0.0.11
Pour finir, il suffit d'utiliser la commande Remove-NetIPAddress
pour retirer l'ancienne adresse.
Exemple :
Remove-NetIPAddress -InterfaceIndex 8 -IPAddress 10.0.0.30
Et voilà ;)