Définir une adresse IP en PowerShell

I. Procédure

La ligne de commandes – notamment PowerShell – étant de plus en plus utilisée sous Windows, il peut être intéressant pour vous les administrateurs de savoir effectuer la configuration de base à partir de celle-ci.

Définir une configuration TCP/IP correcte sur une carte réseau fait partie des choses basiques à savoir faire. PowerShell propose des commandlets adéquats pour parvenir à configurer une interface réseau, dans le but de remplacer le bon vieux netsh.

Pour ma part, je procède depuis Windows Server 2012 R2. Quant aux commandes, elles sont intégrées à PowerShell 4.0.

II. La liste des cartes réseaux

Commençons par lister les cartes réseaux disponible sur la machine, cela permettra de repérer le numéro d’index de la carte que l’on souhaite modifier. Ce numéro sera utile lors de la phase de configuration.

Deux choix s’offrent à vous :

- Get-NetIPInterface (Lister les interfaces IP)
- Get-NetAdapter (Obtenir les propriétés basiques des adaptateurs réseaux)

psnet1b

Dans les deux cas, la colonne « ifIndex » vous donnera le numéro d’index de chaque carte. Repérez celui qui correspond à la carte à configurer, pour ma part c’est « 12 ».

III. Configuration d’une nouvelle adresse IP

Par exemple, on ajoute l’adresse IP « 192.168.1.203/24 » à l’interface ayant l’index 12 :

New-NetIPAddress –InterfaceIndex 12 –IPAddress 192.168.1.203 –PrefixLength 24 –DefaultGateway 192.168.1.254

Quelques précisions concernant les paramètres utilisés :

- InterfaceIndex : Numéro d’index de la carte à modifier (il est possible d’utiliser à la place –InterfaceAlias suivit du nom de l’interface si vous préférez au numéro d’index)
- IPAddress : Adresse IP à attribuer à la carte
- PrefixLength : Longueur du masque de sous réseau
- DefaultGateway : Passerelle par défaut

Note : Il existe également la commande Set-NetIPAddress, qui permet de modifier la configuration d’une IP déjà existante dans les paramètres de la carte. Contrairement à ce que l’on peut voir sur internet, elle ne permet pas l’ajout d’une nouvelle adresse sur une carte (la commande retourne une erreur MSFT_NetIPAddress).

psnet2

Si votre carte était configurée en DHCP, le fait d’ajouter une adresse IP désactive le mode DHCP. D’ailleurs au passage, voici comment activer/désactiver le DHCP sur une carte :

Set-NetIPInterface -InterfaceIndex 12 -Dhcp {Enabled/Disabled}

Revenons à l’adresse IP, nous avons vu comment ajouter une adresse IP sur une carte. Cependant, si une adresse IP est déjà en place sur la carte, elle ne sera pas écrasée par celle que nous venons d’ajouter, il faut donc supprimer l’ancienne.

Imaginons que sur ma carte d’index 12, j’ai une ancienne adresse IP qui est « 10.10.10.10 » et que je souhaite la supprimer :

Remove-NetIPAddress –InterfaceIndex 12 –IPAddress 10.10.10.10 –PrefixLength 16 –DefaultGateway 10.10.10.254

Vous remarquerez que l’on s’appuie sur l’utilisation de la commande Remove-NetIPAddress, en reprenant en modèle la commande d’ajout d’une adresse IP. Confirmez la demande de suppression avec « T » ou deux fois avec « O ».

La notion de Store :

- ActiveStore : Appliquer immédiatement l’adresse IP définie
- PersistentStore : L’ordinateur sauvegarde l’adresse IP pour l’appliquer même après redémarrage. Quand l’ordinateur redémarre, il copie les paramètres sauvegardés dans l’ActiveStore

IV. Ajout d’un DNS

On continue en indiquant un serveur DNS « 8.8.8.8 » sur notre carte, puis, on vérifie que le changement est bien pris en compte :

Set-DnsClientServerAddress -InterfaceIndex 12 -ServerAddresses 8.8.8.8

Pour la vérification :

Get-DnsClientServerAddress -InterfaceIndex 12

psnet3

Si éventuellement vous souhaitez ajouter un suffixe DNS, utilisez cette commande (exemple avec it-connect.fr) :

Set-DnsClient -InterfaceIndex 12 -ConnectionSpecificSuffix it-connect.fr

V. Vérification des paramètres

Pour vérifier que la configuration de la carte réseau est correcte, on utilise la commande suivante :

Get-NetIPConfiguration

Note : Un alias de cette commande est présent par défaut, il suffit de saisir « gip »

psnet4

On peut ajouter à la commande le paramètre « InterfaceIndex » ou « InterfaceAlias » si nécessaire pour cible une interface en particulier. Cette commande doit forcément vous rappeler la commande ipconfig.

La configuration de la carte réseau est désormais terminée, ce tutoriel également d'ailleurs. N'hésitez pas à vous entraîner sur ces commandes plutôt que d'utiliser les commandes netsh.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Co-Fondateur d'IT-Connect, je souhaite partager mes connaissances et expériences avec vous, et comme la veille techno' est importante je partage aussi des actus.

florian a publié 1604 articles sur IT-Connect.See all posts by florian

4 réactions sur “Définir une adresse IP en PowerShell

  • Ping : POWERSHELL | Pearltrees

  • 30/08/2015 à 08:20
    Permalink

    Citation :

    « Imaginons que sur ma carte d’index 12, j’ai une ancienne adresse IP qui est « 10.10.10.10 » et que je souhaite la supprimer :

    New-NetIPAddress –InterfaceIndex 12 –IPAddress 10.10.10.10 –PrefixLength 16 –DefaultGateway 10.10.10.254

    Vous remarquerez que l’on s’appuie sur l’utilisation de la commande Remove-NetIPAddress, en reprenant en modèle la commande d’ajout d’une adresse IP. Confirmez la demande de suppression avec « T » ou deux fois avec « O ». »

    Dans ton code il y a marqué ‘New-NetIPAddress’ alors que tu voulais dire/écrire ‘Remove-NetIPAddress’. Sinon cette page est super cool 😉

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *