
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-Wide
werden mehrere Zeilenumbrüche hinzugefügt, die wahrscheinlich verwirrend sind Restart-NetAdapter
.
Die von erzeugten Objekte Get-NetIPAddress
haben eine InterfaceIndex
Eigenschaft, 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-Object
into“ ?
– dies ist ein praktischer Standard-PowerShell-Alias, den Sie bei Bedarf verwenden können.