So erhalten Sie die IPv4-Adresse in PowerShell
-
Verwenden Sie
Get-NetIPAddress
, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen -
Verwenden Sie
Get-NetIPConfiguration
, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen -
Verwenden Sie die
Dns-Klasse
, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen -
Verwenden Sie
Get-WmiObject
, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen -
Verwenden Sie
Test-Connection
, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen -
Verwenden Sie
Get-CimInstance
, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen - Fazit

Systemadministratoren können verschiedene Aufgaben in PowerShell ausführen, einschließlich Netzwerkaufgaben.
Zum Beispiel ermöglicht PowerShell das Auflisten von IP-Adressen und IP-Konfigurationen, das Pingen eines Computers, das Abrufen von Eigenschaften von Netzwerkadaptern, das Durchführen von DHCP-Konfigurationsaufgaben und das Erstellen/Entfernen eines Netzwerkteils.
IP steht für Internet Protocol, und v4 steht für Version Vier.
Eine IPv4-Adresse ist eine 32-Bit-Ganzzahl, die eine Netzwerkschnittstelle auf einem Computer identifiziert. Sie wird in punktierter Dezimalnotation ausgedrückt.
Sie hat vier 8-Bit-Felder, die durch Punkte getrennt sind, und jedes 8-Bit-Feld repräsentiert ein Byte der IPv4-Adresse. Dieses Tutorial vermittelt Ihnen, wie Sie eine IPv4-Adresse in einer Variablen in PowerShell speichern.
Verwenden Sie Get-NetIPAddress
, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen
Das Cmdlet Get-NetIPAddress
ruft die IP-Adresskonfiguration ab, wie IPv4-Adressen, IPv6-Adressen und die IP-Schnittstellen, die mit Adressen verbunden sind.
Wenn es ohne Parameter ausgeführt wird, druckt es die gesamte IP-Adresskonfiguration für den Computer.
Der Parameter --AddressFamily
wird verwendet, um ein Array von IP-Adressfamilien anzugeben. Das Get-NetIPAddress
ruft die IP-Adresskonfiguration ab, die mit den Adressfamilien dieses Parameters übereinstimmt.
Die akzeptierten Werte sind IPv4
und IPv6
.
Zum Beispiel holt der folgende Befehl Informationen über die IP-Adresskonfiguration für alle IPv4-Adressen auf dem Computer.
Get-NetIPAddress -AddressFamily IPv4
Dieser Befehl erhält nur die IPv4
-Adresse des Computers.
(Get-NetIPAddress | Where-Object { $_.AddressState -eq "Preferred" -and $_.ValidLifetime -lt "24:00:00" }).IPAddress
Im bereitgestellten Code-Snippet verwenden wir das Cmdlet Get-NetIPAddress
, um IP-Adressdaten zu sammeln, gefolgt vom Cmdlet Where-Object
, um Ergebnisse basierend auf spezifischen Kriterien, die in geschweifte Klammern eingeschlossen sind, zu filtern. Die Bedingungen innerhalb des Where-Object
-Blocks, gekennzeichnet durch die Vergleichsoperatoren -eq
und -lt
, zielen auf IP-Adressen im Bevorzugt
-Status und solche mit einer gültigen Laufzeit von weniger als 24 Stunden ab.
Durch den Zugriff auf die IPAddress
-Eigenschaft der gefilterten Ergebnisse, eingeschlossen in Klammern, isolieren und zeigen wir die IPv4-Adressen an, die die festgelegten Bedingungen erfüllen. Diese kurze Analyse hebt den pipeline-gesteuerten Ansatz in PowerShell hervor, bei dem jedes Cmdlet Datenströme effizient verarbeitet, um verfeinerte Ausgaben zu erzeugen.
Ausgabe:
Sie können auch den folgenden Befehl verwenden, um eine IPv4-Adresse in PowerShell zu erhalten.
Get-NetIPAddress -AddressFamily IPv4 -InterfaceIndex $(Get-NetConnectionProfile | Select-Object -ExpandProperty InterfaceIndex) | Select-Object -ExpandProperty IPAddress
Im bereitgestellten Codebeispiel verwenden wir das Cmdlet Get-NetIPAddress
, um IP-Adressinformationen abzurufen. Durch die Angabe von -AddressFamily IPv4
beschränken wir die Ergebnisse auf IPv4-Adressen.
Der Parameter -InterfaceIndex
wird mit dem Schnittstellenindex gefüllt, der mit Get-NetConnectionProfile
abgerufen wurde, um sicherzustellen, dass IP-Adressen abgerufen werden, die mit der aktuellen Netzwerkverbindung verbunden sind. Schließlich verwenden wir Select-Object -ExpandProperty IPAddress
, um die IP-Adressen aus der Ausgabe zu extrahieren und anzuzeigen.
Ausgabe:
Verwenden Sie Get-NetIPConfiguration
, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen
Das Cmdlet Get-NetIPConfiguration
ist ein leistungsstarkes Werkzeug, das verwendet wird, um IP-Adressinformationen auf Windows-Systemen abzurufen. Diese Methode bietet umfassende Daten über IP-Konfigurationen, einschließlich IPv4- und IPv6-Adressen, Subnetzmasken, Standardgateways und Status der Netzwerkadapter, was Administratoren und Skriptern bei netzwerkbezogenen Aufgaben hilft.
Beispiel:
(Get-NetIPConfiguration | Where-Object { $_.IPv4DefaultGateway -ne $null -and $_.NetAdapter.status -ne "Disconnected" }).IPv4Address.IPAddress
Im bereitgestellten Code-Snippet verwenden wir das Cmdlet Get-NetIPConfiguration
, um IP-Adressinformationen zu sammeln, gefolgt vom Cmdlet Where-Object
, um Ergebnisse basierend auf spezifischen Kriterien, die in geschweifte Klammern eingeschlossen sind, zu filtern. Die Bedingungen innerhalb des Where-Object
-Blocks, gekennzeichnet durch den Vergleichsoperator -ne
, zielen auf Konfigurationen mit einem nicht nullen IPv4-Standardgateway und Netzwerkadaptern, die sich nicht im Getrennt
-Status befinden.
Durch den Zugriff auf die IPAddress
-Eigenschaft der gefilterten Ergebnisse, eingeschlossen in Klammern, isolieren und zeigen wir die IPv4-Adressen an, die die festgelegten Kriterien erfüllen. Diese kurze Analyse hebt die Fähigkeit der PowerShell-Pipeline hervor, Datenströme effizient zu verarbeiten, was zu verfeinerten Ausgaben führt, die bei Netzwerkconfigurations- und Fehlerbehebungsaufgaben helfen.
Ausgabe:
Verwenden Sie die Dns-Klasse
, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen
Die Dns-Klasse
ist eine statische Klasse, die Informationen über einen bestimmten Host aus dem Internet-Domain-Name-System (DNS) abruft. Die Methode GetHostAddresses
gibt die IP-Adressen für den angegebenen Host zurück.
Dieser Ansatz kann besonders nützlich sein, wenn in Umgebungen gearbeitet wird, in denen der direkte Zugriff auf Cmdlets wie Get-NetIPConfiguration
oder Get-NetIPAddress
nicht verfügbar oder nicht geeignet ist.
Beispiel:
([System.Net.DNS]::GetHostAddresses($env:computername) | Where-Object { $_.AddressFamily -eq "InterNetwork" } | Select-Object IPAddressToString)[0].IPAddressToString
Im bereitgestellten Codebeispiel verwenden wir [System.Net.DNS]::GetHostAddresses
, um die IP-Adressen abzurufen, die mit dem lokalen Computer verbunden sind, der durch $env:computername
angegeben wird. Wir filtern dann die Ergebnisse mit Where-Object
, um nur IPv4-Adressen auszuwählen (AddressFamily -eq "InterNetwork"
).
Als nächstes verwenden wir Select-Object IPAddressToString
, um die IP-Adresse als Zeichenfolgenrepräsentation zu extrahieren. Schließlich wählt [0].IPAddressToString
die erste IP-Adresse aus den Ergebnissen aus und zeigt sie als Zeichenfolge an.
Ausgabe:
Verwenden Sie Get-WmiObject
, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen
Das Cmdlet Get-WmiObject
ruft Instanzen von Windows Management Instrumentation (WMI)-Klassen oder Informationen über die verfügbaren WMI-Klassen ab.
Die Win32_NetworkAdapterConfiguration
ist eine WMI-Klasse, die die Attribute und Verhaltensweisen eines Netzwerkadapters darstellt.
Beispiel:
(Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object { $_.DHCPEnabled -ne $null -and $_.DefaultIPGateway -ne $null }).IPAddress | Select-Object -First 1
Im bereitgestellten Code-Snippet verwenden wir Get-WmiObject
, um die Win32_NetworkAdapterConfiguration
-Klasse abzufragen und Details zur Konfiguration des Netzwerkadapters abzurufen. Wir wenden dann einen Where-Object
-Filter an, um Konfigurationen auszuwählen, bei denen DHCP aktiviert ist und ein Standardgateway angegeben ist.
Dies stellt sicher, dass wir IP-Adressen abrufen, die mit aktiven Netzwerkverbindungen verbunden sind. Schließlich verwenden wir Select-Object -First 1
, um die erste IP-Adresse aus den Ergebnissen auszuwählen.
Ausgabe:
Verwenden Sie Test-Connection
, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen
Das Cmdlet Test-Connection
sendet ICMP-Echoanforderungspakete oder Pings an einen oder mehrere Computer und gibt die Echoantworten zurück. Es kann auch feststellen, ob ein bestimmter Computer über ein IP-Netzwerk kontaktiert werden kann.
Beispiel:
(Test-Connection -ComputerName (hostname) -Count 1 | select -ExpandProperty IPv4Address).IPAddressToString
Im bereitgestellten Codebeispiel verwenden wir Test-Connection
, um einen Remote-Host zu pingen, der durch (hostname)
angegeben ist, und um netzwerkbezogene Informationen abzurufen. Der Parameter -Count 1
stellt sicher, dass nur eine einzige Echoanfrage an den Zielcomputer gesendet wird, um den Netzwerkverkehr zu minimieren.
Wir verwenden dann Select-Object -ExpandProperty IPv4Address
, um die IPv4-Adresse des Remote-Hosts aus der Ausgabe zu extrahieren und anzuzeigen.
Wenn Sie virtuelle Adapter haben, gibt es eine IPv4-Adresse von virtuellen Adaptern (z.B. VPN, Hyper-V, Docker) zurück.
Ausgabe:
Sie können auch diesen Befehl verwenden, der die gleiche Ausgabe wie oben zurückgibt.
(Test-Connection -ComputerName $env:computername -Count 1).IPv4Address.IPAddressToString
Im bereitgestellten Codebeispiel verwenden wir Test-Connection
, um das lokale System zu pingen, das durch $env:computername
angegeben wird, und um netzwerkbezogene Informationen abzurufen. Durch die Angabe von -Count 1
senden wir eine einzelne Ping-Anfrage an das lokale System, um den Netzwerkverkehr zu minimieren.
Wir greifen dann auf die IPv4Address
-Eigenschaft des Ausgabebjekts zu und greifen weiter auf die IPAddressToString
-Eigenschaft zu, um die IPv4-Adresse als Zeichenfolge abzurufen.
Ausgabe:
Verwenden Sie Get-CimInstance
, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen
Das Cmdlet Get-CimInstance
bietet einen robusten Ansatz, um Informationen aus dem Windows Management Instrumentation (WMI)-Repository abzurufen, was Administratoren ermöglicht, Netzwerkadapterkonfigurationen einfach abzufragen. Durch die Zielsetzung der Win32_NetworkAdapterConfiguration
CIM-Klasse ermöglicht diese Methode den Benutzern, umfassende Details zu Netzwerkeinstellungen, einschließlich IP-Adressen, Subnetzmasken, Standardgateways usw., zu erhalten.
Beispiel:
(Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration | Where-Object { $_.IPAddress -ne $null }).IPAddress[0]
Im bereitgestellten Codebeispiel verwenden wir Get-CimInstance
, um die Win32_NetworkAdapterConfiguration
CIM-Klasse abzufragen und Informationen über die Konfiguration der Netzwerkadapter abzurufen. Das Cmdlet Where-Object
filtert die Ergebnisse, um Konfigurationen auszuwählen, bei denen die IPAddress
-Eigenschaft nicht null ist, um sicherzustellen, dass nur Netzwerkadapterkonfigurationen mit zugewiesenen IP-Adressen zurückgegeben werden.
Durch den Zugriff auf den [0]
Index wählen wir die erste IP-Adresse aus dem Ergebnis aus, was nützlich sein kann, wenn mehrere Netzwerkadapter oder Adressen vorhanden sind. Dieser Ansatz bietet Administratoren eine prägnante Möglichkeit, die primäre IP-Adresse zu erhalten, die mit dem System verbunden ist, was die Netzwerkverwaltung und Fehlerbehebung erleichtert.
Ausgabe:
Fazit
In diesem Artikel haben wir verschiedene Methoden untersucht, um die IPv4-Adresse in PowerShell abzurufen, indem wir verschiedene Cmdlets und Klassen im PowerShell-Ökosystem genutzt haben. Beginnend mit Get-NetIPAddress
haben wir gelernt, wie man IP-Adressinformationen mit spezifischen Filteroptionen abruft, gefolgt von Get-NetIPConfiguration
, das umfassende Daten über IP-Konfigurationen auf Windows-Systemen bietet.
Wir haben dann die Verwendung der Dns
-Klasse für Szenarien, in denen der direkte Zugriff auf Cmdlets nicht verfügbar ist, untersucht. Darüber hinaus haben wir die Verwendung von Get-WmiObject
untersucht, um Netzwerkadapterkonfigurationen über WMI abzufragen, und Test-Connection
, um Remote-Hosts zu pingen und IP-Adressdetails zu sammeln.
Schließlich haben wir uns mit der Nutzung von Get-CimInstance
beschäftigt, um Netzwerkadapterkonfigurationen effizient aus dem WMI-Repository abzurufen. Jede Methode bietet einzigartige Vorteile und richtet sich nach unterschiedlichen Anwendungsfällen und Szenarien in der Netzwerkadministration und Fehlerbehebung.