GERBELOTBARILLON.COM

Parce qu'il faut toujours un commencement...

Réseau en PowerShell

Propriétés TCP/IP des cartes réseau

La commande MS-DOS ipconfig peut faire la même chose mais l'aspect tabulaire offert par PowerShell est clairement plus lisible. Notez-bien la valeur de la colonne ifIndex car c'est avec elle que les commandes de configuration TCP/IP vont s'effectuer.

PS C:\> Get-NetIPInterface

ifIndex InterfaceAlias                  AddressFamily NlMtu(Bytes) InterfaceMetric Dhcp     ConnectionState PolicyStore
------- --------------                  ------------- ------------ --------------- ----     --------------- -----------
18      Connexion réseau Bluetooth 2    IPv6                  1500              65 Disabled Disconnected    ActiveStore
20      Connexion au réseau local* 3    IPv6                  1500              25 Disabled Disconnected    ActiveStore
23      Ethernet 2                      IPv6                  1500              25 Enabled  Connected       ActiveStore
1       Loopback Pseudo-Interface 1     IPv6            4294967295              75 Disabled Connected       ActiveStore
5       Connexion au réseau local* 2    IPv6                  1500              25 Disabled Disconnected    ActiveStore
8       Wi-Fi                           IPv6                  1500              70 Enabled  Disconnected    ActiveStore
18      Connexion réseau Bluetooth 2    IPv4                  1500              65 Enabled  Disconnected    ActiveStore
20      Connexion au réseau local* 3    IPv4                  1500              25 Enabled  Disconnected    ActiveStore
23      Ethernet 2                      IPv4                  1500              25 Enabled  Connected       ActiveStore
1       Loopback Pseudo-Interface 1     IPv4            4294967295              75 Disabled Connected       ActiveStore
5       Connexion au réseau local* 2    IPv4                  1500              25 Enabled  Disconnected    ActiveStore
8       Wi-Fi                           IPv4                  1500              70 Enabled  Disconnected    ActiveStore

L'autre commande utile est Get-NetIpConfiguration, que vous pouvez raccourcir en gip. Dans l'exemple ci-dessous, nous obtenons une configuration basique d'une carte réseau connectée à Internet par l'intermédiaire d'une simple box d'opérateur.
PS C:\> Get-NetIPConfiguration

InterfaceAlias       : Ethernet 2
InterfaceIndex       : 23
InterfaceDescription : ASIX Ethernet Adapter
NetProfile.Name      : MaboxInternet
IPv4Address          : 192.168.0.42
IPv6DefaultGateway   :
IPv4DefaultGateway   : 192.168.0.1
DNSServer            : 192.168.0.1

Pour configurer une IP avec Powershell deux commandes sont possibles :

Par exemple, pour configurer la carte réseau d'index 5 avec la valeur 192.168.0.1 et le masque 255.255.255.0 ainsi que la passerelle 192.168.0.254 il suffit de faire
PS C:\> Set-NetIPAddress –InterfaceIndex 5 –IPAddress 192.168.0.1 –PrefixLength 24 -DefaultGateway 192.168.0.254
Pour activer le mode Dhcp :
PS C:\> Set-NetIPAddress –InterfaceIndex 5 –Dhcp {Enabled / Disabled}
Enfin pour supprimer une adresse il suffit de produire la commande suivante :
PS C:\> Remove-NetIPAddress –InterfaceIndex 5 –IPAddress 192.168.0.1 –PrefixLength 24 -DefaultGateway 192.168.0.254

Une configuration TCP/IP sans DNS n'est pas complète. Pour afficher cette configuration Dns locale :

PS C:\> Get-DnsClientServerAddress –InterfaceIndex 23

InterfaceAlias               Interface Address ServerAddresses
                             Index     Family
--------------               --------- ------- ---------------
Ethernet 2                          23 IPv4    {192.168.1.1}
Ethernet 2                          23 IPv6    {}
Pour changer la valeur du DNS pour la carte, il faut utiliser Set-DnsClientServerAddress.
Activer Google et IBM comme fournisseurs de DNS
PS C:\> Get-DnsClientServerAddress –InterfaceIndex 23 -ServerAddresses ("8.8.8.8", "9.9.9.9")

Lister les cartes réseau

PS C:\> Get-NetAdapter

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet 2                ASIX AX88179 USB 3.0 to Gigabit Ethe...      23 Up           XX-XX-XX-XX-XX-XX         1 Gbps
Connexion réseau Blue...2 Bluetooth Device (Personal Area Ne...#2      18 Disconnected XX-XX-XX-XX-XX-XX         3 Mbps
Wi-Fi                     Intel(R) Dual Band Wireless-AC 8260           8 Disconnected XX-XX-XX-XX-XX-XX         6 Mbps

Renommer une carte réseau

Pour renommer une carte réseau, il faut utiliser la cmdlet Rename-NetAdapter.

Renomme la carte réseau dont le nom est "Ethernet" en "LAN"
PS C:\> Rename-NetAdapter –Name "Ethernet" –NewName "LAN"

Renomme la carte réseau dont le nom correspond au pattern "E*t" en "LAN". Cela va par défaut prendre la carte qui s'appelle "Ethernet"
PS C:\> Rename-NetAdapter –Name "E*t" –NewName "LAN"

Activer/Désactiver une carte réseau

Pour connaître l'état d'une carte réseau, la cmdlet Get-NetAdapter dispose du champ Status que nous pouvons trouver soit Up, soit Down, soit Disconnected.

PS C:\> (Get-NetAdapter –Name "Ethernet").Status
Pour désactiver une carte réseau :
PS C:\> Disable-NetAdapter –Name "Ethernet"
Pour activer une carte réseau :
PS C:\> Enable-NetAdapter –Name "Ethernet"

Propriétés avancées d'une carte réseau

Effectuer une configuration avancée d'une carte réseau peut être utile pour activer des jumbo frames ou le Wake On LAN par exemple. Pour voir la liste des options actives de la carte réseau "Ethernet"

PS C:\> Get-NetAdapterAdvancedProperty

Name                    DisplayName                    DisplayValue                   RegistryKeyword RegistryValue
----                    -----------                    ------------                   --------------- -------------
Ethernet                Energy-Efficient Ethernet      Enabled                        *EEE            {1}
Ethernet                Flow Control                   Rx & Tx Enabled                *FlowControl    {3}
Ethernet                IPv4 Checksum Offload          Rx & Tx Enabled                *IPChecksumO... {3}
Ethernet                Large Send Offload Version 1   Enabled                        *LsoV1IPv4      {1}
Ethernet                ARP Offload                    Enabled                        *PMARPOffload   {1}
Ethernet                NS Offload                     Enabled                        *PMNSOffload    {1}
Ethernet                Packet Priority & VLAN         Packet Priority & VLAN Enable  *PriorityVLA... {3}
Ethernet                SelectiveSuspend               Enabled                        *SelectiveSu... {1}
Ethernet                Speed & Duplex                 Auto Negotiation               *SpeedDuplex    {0}
Ethernet                SSIdleTimeout                  60                             *SSIdleTimeout  {60}
Ethernet                TCP Checksum Offload (IPv4)    Rx & Tx Enabled                *TCPChecksum... {3}
Ethernet                TCP Checksum Offload (IPv6)    Rx & Tx Enabled                *TCPChecksum... {3}
Ethernet                UDP Checksum Offload (IPv4)    Rx & Tx Enabled                *UDPChecksum... {3}
Ethernet                UDP Checksum Offload (IPv6)    Rx & Tx Enabled                *UDPChecksum... {3}
Ethernet                Wake on Magic Packet           Enabled                        *WakeOnMagic... {1}
Ethernet                Wake on pattern match          Enabled                        *WakeOnPattern  {1}
Ethernet                AutoDetach                     Use EEPROM Setting             AutoDetach      {2}
Ethernet                JumboPacket                    Disabled                       JumboPacket     {0}
Ethernet                Mask WakeUp Event Timer        8 seconds                      MaskTimer       {2}
Ethernet                NetworkAddress                 --                             NetworkAddress  {--}
Ethernet                VLAN ID                        --                             VLAN_ID         {--}
Ethernet                Wake on link change            Disabled                       WakeOnLinkCh... {0}
Ethernet                WOL Link Power Saving          Enabled                        WolLinkSpeed    {1}
Pour modifier une valeur il suffit d'utiliser la cmdlet Set-NetAdapterAdvancedProperty. Par exemple, pour activer les Jumbo Frames, il suffit de faire
PS C:\WINDOWS\system32> Set-NetAdapterAdvancedProperty [Nom de la carte] -DisplayName "JumboPacket" -DisplayValue "9100"
De même pour affecter un VLAN d'ID=100 sur la carte réseau :
PS C:\WINDOWS\system32> Set-NetAdapterAdvancedProperty [Nom de la carte] -DisplayName "VLAN ID" -DisplayValue "100"