Comment obtenir l'adresse IPv4 dans PowerShell
-
Utilisez
Get-NetIPAddress
pour obtenir l’adresse IPv4 dans une variable dans PowerShell -
Utilisez
Get-NetIPConfiguration
pour obtenir l’adresse IPv4 dans une variable dans PowerShell -
Utilisez
Dns class
pour obtenir l’adresse IPv4 dans une variable dans PowerShell -
Utilisez
Get-WmiObject
pour obtenir l’adresse IPv4 dans une variable dans PowerShell -
Utilisez
Test-Connection
pour obtenir l’adresse IPv4 dans une variable dans PowerShell -
Utilisez
Get-CimInstance
pour obtenir l’adresse IPv4 dans une variable dans PowerShell - Conclusion

Les administrateurs système peuvent effectuer diverses tâches dans PowerShell, y compris des tâches de mise en réseau.
Par exemple, PowerShell vous permet de lister les adresses IP et la configuration IP, de pinger un ordinateur, de récupérer les propriétés des adaptateurs réseau, d’effectuer des tâches de configuration DHCP, et de créer/supprimer un partage réseau.
IP signifie Protocole Internet, et v4 signifie Version Quatre.
L’adresse IPv4 est un entier de 32 bits qui identifie une interface réseau sur une machine. Elle est exprimée en notation décimale pointée.
Elle a quatre champs de 8 bits séparés par des points, et chaque champ de 8 bits représente un octet de l’adresse IPv4. Ce tutoriel vous apprendra à obtenir une adresse IPv4 dans une variable dans PowerShell.
Utilisez Get-NetIPAddress
pour obtenir l’adresse IPv4 dans une variable dans PowerShell
Le cmdlet Get-NetIPAddress
obtient la configuration de l’adresse IP, comme les adresses IPv4, les adresses IPv6, et les interfaces IP associées aux adresses.
Lorsqu’il est exécuté sans paramètres, il imprime la configuration complète de l’adresse IP pour l’ordinateur.
Le paramètre --AddressFamily
est utilisé pour spécifier un tableau de familles d’adresses IP. Le Get-NetIPAddress
obtient la configuration de l’adresse IP qui correspond aux familles d’adresses avec ce paramètre.
Les valeurs acceptées sont IPv4
et IPv6
.
Par exemple, la commande ci-dessous obtient des informations sur la configuration de l’adresse IP pour toutes les adresses IPv4 sur l’ordinateur.
Get-NetIPAddress -AddressFamily IPv4
Cette commande obtient uniquement l’adresse IPv4
de l’ordinateur.
(Get-NetIPAddress | Where-Object { $_.AddressState -eq "Preferred" -and $_.ValidLifetime -lt "24:00:00" }).IPAddress
Dans l’extrait de code fourni, nous utilisons le cmdlet Get-NetIPAddress
pour rassembler des données sur les adresses IP, suivi du cmdlet Where-Object
pour filtrer les résultats en fonction de critères spécifiques encapsulés dans des accolades. Les conditions dans le bloc Where-Object
, désignées par les opérateurs de comparaison -eq
et -lt
, ciblent les adresses IP dans l’état Préféré
et celles ayant une durée de validité inférieure à 24 heures, respectivement.
En accédant à la propriété IPAddress
des résultats filtrés, encapsulée dans des parenthèses, nous isolons et affichons les adresses IPv4 répondant aux conditions établies. Cette analyse concise souligne l’approche pilotée par des pipelines dans PowerShell, où chaque cmdlet traite efficacement les flux de données pour produire des sorties raffinées.
Sortie :
Vous pouvez également utiliser la commande suivante pour obtenir une adresse IPv4 dans PowerShell.
Get-NetIPAddress -AddressFamily IPv4 -InterfaceIndex $(Get-NetConnectionProfile | Select-Object -ExpandProperty InterfaceIndex) | Select-Object -ExpandProperty IPAddress
Dans l’exemple de code fourni, nous utilisons le cmdlet Get-NetIPAddress
pour récupérer des informations sur les adresses IP. En spécifiant -AddressFamily IPv4
, nous restreignons les résultats aux adresses IPv4.
Le paramètre -InterfaceIndex
est alimenté avec l’index d’interface récupéré en utilisant Get-NetConnectionProfile
, assurant que les adresses IP associées à la connexion réseau actuelle sont obtenues. Enfin, nous utilisons Select-Object -ExpandProperty IPAddress
pour extraire et afficher les adresses IP à partir de la sortie.
Sortie :
Utilisez Get-NetIPConfiguration
pour obtenir l’adresse IPv4 dans une variable dans PowerShell
Le cmdlet Get-NetIPConfiguration
est un outil puissant utilisé pour récupérer des informations sur les adresses IP sur les systèmes Windows. Cette méthode fournit des données complètes sur les configurations IP, y compris les adresses IPv4 et IPv6, les masques de sous-réseau, les passerelles par défaut et les états des adaptateurs réseau, aidant les administrateurs et les scripteurs dans les tâches liées au réseau.
Exemple :
(Get-NetIPConfiguration | Where-Object { $_.IPv4DefaultGateway -ne $null -and $_.NetAdapter.status -ne "Disconnected" }).IPv4Address.IPAddress
Dans l’extrait de code fourni, nous utilisons le cmdlet Get-NetIPConfiguration
pour rassembler des informations sur les adresses IP, suivi du cmdlet Where-Object
pour filtrer les résultats en fonction de critères spécifiques encapsulés dans des accolades. Les conditions dans le bloc Where-Object
, désignées par l’opérateur de comparaison -ne
, ciblent les configurations avec une passerelle par défaut IPv4 non nulle et les adaptateurs réseau qui ne sont pas dans un état Déconnecté
, respectivement.
En accédant à la propriété IPAddress
des résultats filtrés, encapsulée dans des parenthèses, nous isolons et affichons les adresses IPv4 qui répondent aux critères établis. Cette analyse concise souligne la capacité du pipeline PowerShell à traiter efficacement les flux de données, permettant des sorties raffinées qui aident dans les tâches de configuration et de dépannage réseau.
Sortie :
Utilisez Dns class
pour obtenir l’adresse IPv4 dans une variable dans PowerShell
La Dns class
est une classe statique qui obtient des informations sur un hôte spécifique à partir du Système de Noms de Domaine (DNS) Internet. La méthode GetHostAddresses
renvoie les adresses IP pour l’hôte spécifié.
Cette approche peut être particulièrement utile lorsque vous travaillez dans des environnements où l’accès direct aux cmdlets comme Get-NetIPConfiguration
ou Get-NetIPAddress
n’est pas disponible ou pas approprié.
Exemple :
([System.Net.DNS]::GetHostAddresses($env:computername) | Where-Object { $_.AddressFamily -eq "InterNetwork" } | Select-Object IPAddressToString)[0].IPAddressToString
Dans l’exemple de code fourni, nous utilisons [System.Net.DNS]::GetHostAddresses
pour récupérer les adresses IP associées à l’ordinateur local spécifié par $env:computername
. Nous filtrons ensuite les résultats en utilisant Where-Object
pour sélectionner uniquement les adresses IPv4 (AddressFamily -eq "InterNetwork"
).
Ensuite, nous utilisons Select-Object IPAddressToString
pour extraire l’adresse IP sous la forme d’une représentation sous forme de chaîne. Enfin, [0].IPAddressToString
sélectionne la première adresse IP des résultats et l’affiche sous forme de chaîne.
Sortie :
Utilisez Get-WmiObject
pour obtenir l’adresse IPv4 dans une variable dans PowerShell
Le cmdlet Get-WmiObject
obtient des instances de classes Windows Management Instrumentation (WMI) ou des informations sur les classes WMI disponibles.
La classe Win32_NetworkAdapterConfiguration
est une classe WMI qui représente les attributs et comportements d’un adaptateur réseau.
Exemple :
(Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object { $_.DHCPEnabled -ne $null -and $_.DefaultIPGateway -ne $null }).IPAddress | Select-Object -First 1
Dans l’extrait de code fourni, nous utilisons Get-WmiObject
pour interroger la classe Win32_NetworkAdapterConfiguration
, récupérant les détails de configuration des adaptateurs réseau. Nous appliquons ensuite un filtre Where-Object
pour sélectionner les configurations où DHCP est activé et une passerelle par défaut est spécifiée.
Cela garantit que nous récupérons des adresses IP associées à des connexions réseau actives. Enfin, nous utilisons Select-Object -First 1
pour sélectionner la première adresse IP des résultats.
Sortie :
Utilisez Test-Connection
pour obtenir l’adresse IPv4 dans une variable dans PowerShell
Le cmdlet Test-Connection
envoie des paquets de requête d’écho ICMP, ou pings, à un ou plusieurs ordinateurs et renvoie les réponses aux échos. Il peut également déterminer si un ordinateur spécifique peut être contacté à travers un réseau IP.
Exemple :
(Test-Connection -ComputerName (hostname) -Count 1 | select -ExpandProperty IPv4Address).IPAddressToString
Dans l’exemple de code fourni, nous utilisons Test-Connection
pour pinger un hôte distant spécifié par (hostname)
et récupérer des informations liées au réseau. Le paramètre -Count 1
garantit qu’une seule requête d’écho est envoyée à l’ordinateur cible, minimisant le trafic réseau.
Nous utilisons ensuite Select-Object -ExpandProperty IPv4Address
pour extraire et afficher l’adresse IPv4 de l’hôte distant à partir de la sortie.
Si vous avez des adaptateurs virtuels, cela retourne une adresse IPv4 des adaptateurs virtuels (par exemple, VPN, Hyper-V, Docker).
Sortie :
Vous pouvez également utiliser cette commande, qui retourne la même sortie que ci-dessus.
(Test-Connection -ComputerName $env:computername -Count 1).IPv4Address.IPAddressToString
Dans l’exemple de code fourni, nous utilisons Test-Connection
pour pinger le système local spécifié par $env:computername
et récupérer des informations liées au réseau. En spécifiant -Count 1
, nous envoyons une seule requête ping au système local, minimisant le trafic réseau.
Nous accédons ensuite à la propriété IPv4Address
de l’objet de sortie et accédons encore à la propriété IPAddressToString
pour récupérer l’adresse IPv4 sous forme de chaîne.
Sortie :
Utilisez Get-CimInstance
pour obtenir l’adresse IPv4 dans une variable dans PowerShell
Le cmdlet Get-CimInstance
offre une approche robuste pour récupérer des informations du référentiel Windows Management Instrumentation (WMI), permettant aux administrateurs d’interroger facilement les configurations des adaptateurs réseau. En ciblant la classe CIM Win32_NetworkAdapterConfiguration
, cette méthode permet aux utilisateurs d’obtenir des détails complets sur les paramètres réseau, y compris les adresses IP, les masques de sous-réseau, les passerelles par défaut, et plus encore.
Exemple :
(Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration | Where-Object { $_.IPAddress -ne $null }).IPAddress[0]
Dans l’exemple de code fourni, nous utilisons Get-CimInstance
pour interroger la classe CIM Win32_NetworkAdapterConfiguration
, récupérant des informations sur les configurations des adaptateurs réseau. Le cmdlet Where-Object
filtre les résultats pour sélectionner les configurations où la propriété IPAddress
n’est pas nulle, garantissant que seules les configurations des adaptateurs réseau avec des adresses IP attribuées sont retournées.
En accédant à l’index [0]
, nous sélectionnons la première adresse IP des résultats, ce qui peut être utile lorsque nous traitons avec plusieurs adaptateurs réseau ou adresses. Cette approche fournit aux administrateurs un moyen concis de récupérer l’adresse IP principale associée au système, facilitant les tâches de gestion et de dépannage réseau.
Sortie :
Conclusion
Dans cet article, nous avons exploré différentes méthodes pour récupérer l’adresse IPv4 dans PowerShell, en utilisant différents cmdlets et classes disponibles dans l’écosystème PowerShell. En commençant par Get-NetIPAddress
, nous avons appris à récupérer des informations sur les adresses IP avec des options de filtrage spécifiques, suivi de Get-NetIPConfiguration
, qui fournit des données complètes sur les configurations IP sur les systèmes Windows.
Nous avons ensuite exploré l’utilisation de la classe Dns
pour des scénarios où l’accès direct aux cmdlets n’est pas disponible. De plus, nous avons examiné l’utilisation de Get-WmiObject
pour interroger les configurations des adaptateurs réseau via WMI et Test-Connection
pour pinger des hôtes distants et recueillir des détails sur les adresses IP.
Enfin, nous avons approfondi l’utilisation de Get-CimInstance
pour récupérer efficacement les configurations des adaptateurs réseau depuis le référentiel WMI. Chaque méthode offre des avantages uniques, répondant à différents cas d’utilisation et scénarios dans les tâches d’administration et de dépannage réseau.