Ipconfig mit der PowerShell

Im letzten Blogeintrag haben wir uns angesehen, man den netstat Befehl aus der CMD Shell mit der PowerShell ablösen kann.

In diesem Blogeintrag schauen wir uns an, wie man den ipconfig Befehl aus der CMD Shell mit der PowerShell ablösen kann.

Der Befehl ipconfig zeigt die Netzwerkkonfiguration aller Netzwerkinterfaces an. Dies können LAN, WLAN oder auch virtuelle Adapter sein.

In der CMD Shell sieht das folgendermaßen aus. Ipconfig ohne Parameter gibt die IP-Adressen (v4 und v6), die Subnetzmaske und das Standardgateway aus.

ipconfig

Windows-IP-Konfiguration

Ethernet-Adapter vEthernet (NetNAT):

   Verbindungsspezifisches DNS-Suffix:
   Verbindungslokale IPv6-Adresse  . : fe80::ad6e:6728:9a39:aabb%18
   IPv4-Adresse  . . . . . . . . . . : 192.168.222.254
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0
   Standardgateway . . . . . . . . . :


Drahtlos-LAN-Adapter WLAN:

   Verbindungsspezifisches DNS-Suffix: fritz.box
   Verbindungslokale IPv6-Adresse  . : fe80::746b:96a5:58ca:bbcc%4
   IPv4-Adresse  . . . . . . . . . . : 192.168.42.85
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0
   Standardgateway . . . . . . . . . : 192.168.42.1

Mit dem Befehl ipconfig /all sehe ich alle Details, wie z.B. den DNS Server, den DHCP-Server, DHCP-Leasedauer, die MAC-Adresse und weiteres.

 

ipconfig /all

Drahtlos-LAN-Adapter WLAN:

Verbindungsspezifisches DNS-Suffix: fritz.box

   Beschreibung. . . . . . . . . . . : Intel(R) Dual Band Wireless-AC 8265
   Physische Adresse . . . . . . . . : F8-59-71-AA-BB-CC
   DHCP aktiviert. . . . . . . . . . : Ja
   Autokonfiguration aktiviert . . . : Ja
   Verbindungslokale IPv6-Adresse  . : fe80::746b:96a5:58ca:aabb%4(Bevorzugt)
   IPv4-Adresse  . . . . . . . . . . : 192.168.42.85(Bevorzugt)
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0
   Lease erhalten. . . . . . . . . . : Sonntag, 8. April 2018 19:39:19
   Lease läuft ab. . . . . . . . . . : Samstag, 21. April 2018 12:03:17
   Standardgateway . . . . . . . . . : 192.168.42.1
   DHCP-Server . . . . . . . . . . . : 192.168.42.1
   DHCPv6-IAID . . . . . . . . . . . : 83384689
   DHCPv6-Client-DUID. . . . . . . . : 00-01-00-01-21-AB-25-77-00-50-B6-DB-E7-D5
   DNS-Server  . . . . . . . . . . . : 192.168.42.1
   NetBIOS über TCP/IP . . . . . . . : Deaktiviert

In der PowerShell gibt es 3 Befehle, mit denen ich Informationen über die Netzwerkkonfiguration aller Netzwerkinterfaces bekommen kann.

Mit Get-NetAdapter erhalte ich eine Liste aller physikalischen und virtuellen Netzwerkadapter. In den Attribut-Details stehen sehr viele Informationen wie z.B. Linkspeed, Treiber, MTU, NDIS Version etc.

Get-NetAdapter | FT InterfaceDescription,MacAddress,LinkSpeed,MTUSize,DriverFileName,NdisVersion,Status

Get-NetAdapter | FT InterfaceDescription,MacAddress,LinkSpeed,MTUSize,DriverFileName,NdisVersion,Status

InterfaceDescription                     MacAddress        LinkSpeed  MTUSize DriverFileName NdisVersion Status

--------------------                     ----------        ---------  ------- -------------- ----------- ------

Hyper-V Virtual Ethernet Adapter #3      00-15-5D-BE-11-AA BB Gbps       1500 vmswitch.sys   6.50        Up
Hyper-V Virtual Ethernet Adapter         0A-15-8A-E7-15-AA BB Gbps       1500 vmswitch.sys   6.50        Up
Intel(R) Ethernet Connection (4) I219-LM 18-60-24-4B-AA-BB 0 bps         1500 e1d65x64.sys   6.50        Disconnected
SonicWALL NetExtender Adapter                              1.1 Gbps      1514 NxDrv.sys      5.0         Up
Intel(R) Dual Band Wireless-AC 8265      F8-59-71-26-AA-BB 144.4 Mbps    1500 Netwtw06.sys   6.60        Up
HP lt4120 Snapdragon X5 LTE              9C-8D-88-5A-AA-BB 0 bps         1500 wmbclass.sys   6.80        Disconnected

Mit dem Befehl Get-NetIPConfiguration habe ich eine andere Sicht auf die Netzwerkinterfaces. Hier sehe ich die IP-Adressen und die DNS Server.

Get-NetIPConfiguration

Get-NetIPConfiguration 

InterfaceAlias       : vEthernet (NetNAT)
InterfaceIndex       : 18
InterfaceDescription : Hyper-V Virtual Ethernet Adapter #3
NetProfile.Name      : Nicht identifiziertes Netzwerk
IPv4Address          : 192.168.222.254
IPv6DefaultGateway   :
IPv4DefaultGateway   :
DNSServer            : fec0:0:0:ffff::1
                       fec0:0:0:ffff::2
                       fec0:0:0:ffff::3

 
InterfaceAlias       : WLAN
InterfaceIndex       : 4
InterfaceDescription : Intel(R) Dual Band Wireless-AC 8265
NetProfile.Name      : SSID
IPv4Address          : 192.168.42.85
IPv6DefaultGateway   :
IPv4DefaultGateway   : 192.168.42.1
DNSServer            : 192.168.42.1

Der dritte Befehl heißt Get-NetIPAddress und listet alle aktiven und alten IP Konfigurationen aus der Registry auf. Dadurch wird das ganze unübersichtlich.

Get-NetIPAddress | ft InterfaceAlias, IPAddress

Ein (Get-NetIPAddress).count ergibt bei mir die Zahl von 15 Interfaces

Folgende Interfaces und IPs werden gefunden

Get-NetIPAddress | ft InterfaceAlias, IPAddress


InterfaceAlias              IPAddress
--------------              ---------

vEthernet (NetNAT)          fe80::ad6e:6728:9a39:2a05%18
vEthernet (Standardswitch)  fe80::7582:4a08:958f:5d9f%5
Ethernet                    fe80::1025:fb7e:30c6:b476%14
LAN-Verbindung* 9           fe80::6138:3dc8:d53a:567b%6
Loopback Pseudo-Interface 1 ::1
Mobilfunk                   fe80::41be:9fa6:2ec7:7841%10
WLAN                        fe80::746b:96a5:58ca:963c%4
vEthernet (NetNAT)          192.168.222.254
vEthernet (Standardswitch)  172.25.120.97
Ethernet                    192.168.222.5
Ethernet                    169.254.180.118
LAN-Verbindung* 9           169.254.86.123
Loopback Pseudo-Interface 1 127.0.0.1
Mobilfunk                   100.118.69.51
WLAN                        192.168.42.85

Power-TIP: Alle 3 Befehle liefern eher unbefriedigende Ergebnisse. Da bastelt man sich leichter selber etwas passendes über die WMI-Schnittstelle.

Get-WmiObject Win32_NetworkAdapterConfiguration | where {$_.IPEnabled -eq $true} | FL Description, MACAddress,`
 IPAddress,IPSubnet,DefaultIPGateway,DNSServerSearchOrder

Get-WmiObject Win32_NetworkAdapterConfiguration | where {$_.IPEnabled -eq $true} | FL Description, MACAddress,`
 IPAddress,IPSubnet,DefaultIPGateway,DNSServerSearchOrder

 
Description          : Intel(R) Dual Band Wireless-AC 8265
MACAddress           : F8:59:71:26:AA:BB
IPAddress            : {192.168.42.85, fe80::746b:96a5:58ca:963c}
IPSubnet             : {255.255.255.0, 64}
DefaultIPGateway     : {192.168.42.1}
DNSServerSearchOrder : {192.168.42.1}

Description          : Hyper-V Virtual Ethernet Adapter #3
MACAddress           : 00:15:5D:BE:AA:BB
IPAddress            : {192.168.222.254, fe80::ad6e:6728:9a39:2a05}
IPSubnet             : {255.255.255.0, 64}
DefaultIPGateway     :
DNSServerSearchOrder :

Im nächsten Blogeintrag beschäftigen wir uns damit, wie man anstatt mit dem CMD Befehl route mit der PowerShell Netzwerk Routen ausliest und setzt.

5 Kommentare

  • Antworten Michael |

    Danke für die Tips!
    Ich kann noch folgenden Befehl „empfehlen“:
    >>Get-NetIPConfiguration -Detailed -All <<

    Gibt es eine möglichkeit die DUID und IAID (für den DHCPv6 Server) abzufragen? Mit "ipconfig /all" wird diese mit angezeigt, über Powershell habe ich bisher nur die Möglichkeit gefunden die DUID über die Registry auszulesen. Kennen Sie einen eleganteren Weg?

    • Antworten Boris Birneder |

      Danke zurück für den neuen Tip.
      Wg. DUID und IAID:
      Mir ist auch kein anderer Weg als die Registry bekannt. Auch in den WMI Klassen gibt da nichts.
      Oder man zerlegt das ipconfig /all Ergebnis mit der PowerShell.

  • Antworten User007 |

    Hi…
    Ihre Tippgabe in Ehren, aber jetzt mal ehrlich:
    Warum soll man so viel Aufwand mit der PS betreiben, um ein Ergebnis, das mit einem (kurzen) simplen Befehl in der Kommandozeile mit allen relevanten Informationen erhältlich ist, zu bekommen?
    Sorry, das zeigt wohl eher, wie schlecht die Usability der PS für „kleine“ Befehle umgesetzt ist – für komplexere Prozesse ist sie mittlerweile sicherlich besser als die Kommandozeile geeignet.

    • Antworten Boris Birneder |

      Hallo,
      das ist absolut richtig. Für eine schnelle Abfrage nutze ich auch weiterhin ipconfig, telnet, ping und netstat. Wenn man aber einen schönen Automatismus z.B. für eine Auswertung bauen will, kann man das besser mit der PowerShell umsetzen. Grüße

Was denken Sie?