IP-Adressen, Netzwerkadapter und Konfigurationsdaten ermitteln Aufgaben im Netzwerk mit der PowerShell durchführen
Anbieter zum Thema
Mit der PowerShell lassen sich umfassende Konfigurationen für Windows im Netzwerk vornehmen. Aufgaben lassen sich mit der Shell oft schneller und effektiver umsetzen als in der grafischen Oberfläche. Wir zeigen verschiedene Möglichkeiten.

Wir haben uns in den Beiträgen „Mit der PowerShell nach offenen Ports suchen“ und „Netzwerkeinstellungen mit der PowerShell steuern“ bereits mit dem Thema Netzwerkaufgaben und PowerShell auseinandergesetzt.
In diesem Beitrag vertiefen wir die Möglichkeiten nochmal etwas und zeigen weitere Befehle, mit denen sich auf Arbeitsstationen mit Windows 10/11 und Servern mit Windows Server 2016/2019 sowie Windows Server 2022 mit der PowerShell verschiedene Netzwerkaufgaben durchführen lassen – auch unter Verwendung von Windows Management Instrumentation (WMI). Die Aufgaben können in der klassischen, vorinstallierten PowerShell durchgeführt werden, aber auch mit der modernen PowerShell 7.x, die parallel zur alten PowerShell in Windows installiert werden kann.
Funktionieren Abfragen per WMI nicht, kann es hilfreich sein, diese Funktion in Windows zunächst mit „winrm quickconfig“ zu aktivieren. Ob Verbindungen mit WMI über das Netzwerk funktionieren, kann dann mit dem Befehl „winrm enumerate winrm/config/listener“ überprüft werden. Dazu muss der Port 5985 geöffnet sein.
Informationen zum BIOS/UEFI mit der PowerShell abfragen
Wir zeigen in diesem Beitrag auch verschiedene Cmdlets, die WMI nutzen. Sinnvoll kann das zum Beispiel sein, wenn mehr über den PC-Hersteller und die Hauptplatine angezeigt werden soll. In diesem Fall kann der folgende Befehl zum Einsatz kommen:
Get-CimInstance -ClassName Win32_BIOS
Der Befehl unterstützt den Parameter „-ComputerName“, sodass auch eine Abfrage über das Netzwerk erfolgen kann. Wird die Abfrage wegen fehlenden Berechtigungen verweigert, ist es möglich, die Anmeldung in einer Variablen zu speichern und diese zur Verbindung zu nutzen:
$CimSession = New-CimSession -ComputerName dc01 -Credential (Get-Credential)
Get-CimInstance -CimSession $CimSession -ClassName Win32_BIOS
Die gleichen Informationen liefert der Befehl „Get-WmiObject Win32_BIOS“. Dieses Cmdlet ist wiederum hilfreich, um auch Daten zur Netzwerkkonfiguration auszulesen, die sich flexibel anpassen lassen, zum Beispiel:
Get-WmiObject Win32_NetworkAdapterConfiguration | where {$_.IPEnabled –eq $true} | FL Description, MACAddress,IPAddress,IPSubnet,DefaultIPGateway,DNSServerSearchOrder
Mehr Informationen zu allen Adaptern zeigt der folgende Befehl:
Get-NetIPConfiguration -Detailed -All
Für die Anzeige aller Mac-Adressen eines Computers kann der folgende Befehl genutzt werden:
Get-WmiObject Win32_NetworkAdapterConfiguration | format-table MacAddress, Description -autosize
Um noch mehr Informationen zu einem Computer auszulesen, die schlussendlich auch für die Netzwerkkonfiguration relevant sind, steht auch das Cmdlet „Get-ComputerInfo“ zur Verfügung. Das Cmdlet unterstützt nicht den Parameter „-ComputerName“ zur Abfrage der Informationen über das Netzwerk, aber mit Umwegen lässt sich das umgehen:
Invoke-Command -ComputerName <Name> -ScriptBlock {Get-ComputerInfo}
Reichen die Berechtigungen nicht aus, kann hier der gleiche Ansatz verfolgt werden, wie bei „Get-CimInstance“ im oberen Abschnitt.
Konfiguration der Netzwerkadapter in der PowerShell auslesen
Die Konfigurationsdaten der Netzwerkadapter können in der PowerShell mit dem folgenden Befehl ausgelesen werden:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration
Der Befehl zeigt zunächst alle Netzwerkadapter auf dem Computer an, ob DHCP aktiviert ist und welche Indexnummer dem Adapter zugewiesen ist. Die Indexnummer ist für die Verwendung von verschiedenen Befehlen notwendig, um den Netzwerkadapter zu identifizieren. Um mehr Informationen anzuzeigen, kann die Ausgabe mit der Pipeline „|“ an das Cmdlet „Select-Object“ weitergegeben werden. Mit dem Parameter „-ExcludeProperty“ lassen sich wiederum einzelne Informationen ausblenden, mit dem Parameter „-Filter“ können Netzwerkadapter angesprochen werden, die aktuell eine IP-Adresse zugewiesen haben und mit dem Netzwerk verbunden sind:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true | Select-Object -ExcludeProperty IPX*,WINS*
Netzwerkkategorie auslesen und ändern
Um Daten der Netzwerkverbindungen und das Netzwerkprofil auszulesen, kann ergänzend das folgende Cmdlet zum Einsatz kommen:
Get-NetConnectionProfile
Das Cmdlet zeigt auch wichtige Informationen zur „NetworkCategory“ an, die schlussendlich steuert, welches Firewall-Profil auf dem Computer aktiv ist. Ändern lässt sich die Kategorie in diesem Fall wiederum zu Beispiel mit:
Set-NetConnectionProfile -InterfaceIndex 10 -NetworkCategory Private
Das Cmdlet ändert den Eintrag der Netzwerkkategorie in der Registry. Dieser ist im Pfad „HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\NetworkList\Profiles“ für das jeweilige Profil zu finden. Der Wert „1“ Steht für ein privates Netzwerk, „0“ steht für öffentliche Netzwerke, „2“ steht für das Profil „Domain“.
Physische Netzwerkadapter auslesen und Informationen anzeigen
Soll die Anzeige der Netzwerkadapter auf die physisch aktiven gesetzt werden, kann auch das Cmdlet „Get-NetAdapter“ zum Einsatz kommen, das nicht auf WMI setzt. Der Befehl zeigt für die Adapter auch die Mac-Adresse an und ob der Adapter aktuell mit dem Netzwerk verbunden ist. Dazu kommen Informationen der Geschwindigkeit für den Adapter.
Mit dem Befehl lassen sich einzelne Adapter auch deaktivieren. Hierzu kommt zusätzlich noch das Cmdlet „Disable-NetAdapter“ zum Einsatz sowie das Cmdlet „Enable-NetAdapter“, um den Adapter wieder zu aktivieren:
Get-NetAdapter -Name LAN-Verbindung | Disable-NetAdapter -Confirm:$false
und
Get-NetAdapter -Name LAN-Verbindung | Enable-NetAdapter
Der Status des Adapters ändert sich in diesem Fall und wird jeweils in der Spalte „Status“ angezeigt. Die wichtigsten Informationen lassen sich mit dem folgenden Befehl festlegen:
Get-NetAdapter | FT InterfaceDescription,MacAddress,LinkSpeed,MTUSize,DriverFileName,NdisVersion,Status
Welche Spalten der Befehl anzeigen soll, lässt sich natürlich individuell steuern.
DHCP-Daten abfragen und Leases erneuern
Bei Verwendung von DHCP ist es möglich, über WMI auch Informationen zu den DHCP-Leases und den verwendeten DHCP-Server auszulesen:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled=$true and DHCPEnabled=$true" | Format-Table -Property DHCP*
Mit WMI lässt sich in der PowerShell aber auch einiges an der Konfiguration in Windows ändern. Um zum Beispiel für alle Netzwerkadapter neue DHCP-Leases abzurufen, kann der folgende Befehl zum Einsatz kommen:
Invoke-CimMethod -ClassName Win32_NetworkAdapterConfiguration -MethodName RenewDHCPLeaseAll
(ID:49025139)