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

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5500.Voir tous les posts

6 thoughts on “Définir une adresse IP en PowerShell

  • 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
  • Bonjour,

    Je souhaiterai créer un script PowerShell qui permet de vérifier à partir d’un fichier Excel si l’adresse Mac correspond bien à l’adresse IP et à l’hostname indiqué dans le fichier Excel.
    Si l’adresse MAC = adresse IP + hostname du fichier alors ne rien faire
    Sinon récurer les infos dans le fichier Excel et faire les modifs automatiquement.
    Pouvez-vous m’aiguiller un peu svp ?

    Répondre
  • Bonjour,
    J’ai un message d’erreur en lançant la commande New-NetIPAddress. Le voici :

    new-netipaddress : L’objet existe déjà.
    Au caractère Ligne:1 : 1
    + new-netipaddress -ipaddress 192.168.1.1 -interfaceindex 24 -prefixlen …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (MSFT_NetIPAddress:ROOT/StandardCimv2/MSFT_NetIPAddress) [New-NetIPAddress], CimException
    + FullyQualifiedErrorId : Windows System Error 5010,New-NetIPAddress

    Quand je retourne dans les propriétés de ma carte réseau, « utiliser l’adresse IP suivante : » est bien coché mais aucune adresse n’est rentrée.
    Savez-vous pourquoi svp ?

    Répondre
  • Bonjour
    PC windows 10 pro connecter à Internet avec un dongle Huawei e3372h connexion médiocre
    j’ai cru de pouvoir l’améliorer avec un routeur TP-Link Archer C7 AC1750 Ver 5.0
    je pense que mon fournisseur d’accès Internet me bloque l’entrée du routeur
    merci si vous pouviez m’apporter conseil Max Goupil

    Répondre

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.