So starten Sie eine bestimmte Netzwerkschnittstelle per Powershell neu

So starten Sie eine bestimmte Netzwerkschnittstelle per Powershell neu

Ich versuche, eine Netzwerkschnittstelle mit einer bestimmten IP-Adresse per Powershell neu zu starten. Ich habe die folgenden Anweisungen ausgeführt:

$iface = Get-NetIPAddress | Where-Object -FilterScript { $_.IPAddress -like "10.212*" } | format-wide -Property InterfaceAlias

Habe die Schnittstelle im gesamten Format, aber bei Verwendung der folgenden Variable funktioniert es nicht richtig.

Restart-NetAdapter -Name $iface

Ist das die richtige Art, die Variable zu verwenden?

Verwende Powershell Version 5.

Antwort1

Die Formatierungs-Cmdlets geben Zeichenfolgen zurück, die für Menschen sehr gut lesbar sind, aber nicht mehr die eigentlichen Objekte sind. Insbesondere Format-Widewerden mehrere Zeilenumbrüche hinzugefügt, die wahrscheinlich verwirrend sind Restart-NetAdapter.

Die von erzeugten Objekte Get-NetIPAddresshaben eine InterfaceIndexEigenschaft, die wir verwenden können, um ein Netzwerkadapterobjekt von abzurufen Get-NetAdapter. Anschließend kann das Adapterobjekt in weitergeleitet werden Restart-NetAdapter.

Get-NetAdapter -InterfaceIndex (Get-NetIPAddress | ? {$_.IPAddress -like '10.212.*'}).InterfaceIndex | Restart-NetAdapter

Beachten Sie auch das Aliasing von „ Where-Objectinto“ ?– dies ist ein praktischer Standard-PowerShell-Alias, den Sie bei Bedarf verwenden können.

verwandte Informationen