So starten Sie eine bestimmte Netzwerkschnittstelle per Powershell neu

720
Marlon

Ich versuche, eine Netzwerkschnittstelle per Powershell mit einer bestimmten IP-Adresse neu zu starten. Ich habe folgende Aussagen gemacht:

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

Bekam die Schnittstelle mit dem Format, aber mit der Variablen unten funktionierte das nicht richtig.

Restart-NetAdapter -Name $iface 

Ist es die richtige Art, die Variable zu verwenden?

Powershell Version 5 verwenden.

0

1 Antwort auf die Frage

1
Ben N

Die Formatierungs-Cmdlets geben Strings zurück, die für Menschen sehr gut lesbar sind, aber nicht mehr die eigentlichen Objekte sind. Format-WideFügt insbesondere mehrere Zeilenumbrüche hinzu, die möglicherweise verwirrend sind Restart-NetAdapter.

Die Objekte, die von produziert werden, Get-NetIPAddressverfügen über eine InterfaceIndexEigenschaft, mit der wir ein Netzwerkadapterobjekt erwerben können Get-NetAdapter. Dann kann das Adapterobjekt weitergeleitet werden Restart-NetAdapter.

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

Beachten Sie auch das Aliasing von Where-Objectin ?- dies ist ein praktischer Standard-PowerShell-Alias, den Sie verwenden können, wenn Sie möchten.