Cómo reiniciar una interfaz de red específica mediante powershell

Cómo reiniciar una interfaz de red específica mediante powershell

Estoy intentando reiniciar una interfaz de red mediante PowerShell con una dirección IP específica. Hice las siguientes declaraciones:

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

Obtuve la interfaz con todo el formato, pero al usar la variable a continuación, las cosas no funcionan correctamente.

Restart-NetAdapter -Name $iface

¿Es la forma correcta de utilizar la variable?

Usando powershell versión 5.

Respuesta1

Los cmdlets de formato devuelven cadenas, que son muy agradables de leer para los humanos, pero que ya no son objetos reales. En particular, Format-Wideañade varios saltos de línea que probablemente resulten confusos Restart-NetAdapter.

Los objetos producidos por Get-NetIPAddresstienen una InterfaceIndexpropiedad que podemos usar para adquirir un objeto adaptador de red Get-NetAdapter. Luego, el objeto adaptador se puede conectar a Restart-NetAdapter.

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

También tenga en cuenta el alias de Where-Objectinto ?: este es un alias estándar de PowerShell conveniente que puede usar si lo desea.

información relacionada