
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-Wide
añade varios saltos de línea que probablemente resulten confusos Restart-NetAdapter
.
Los objetos producidos por Get-NetIPAddress
tienen una InterfaceIndex
propiedad 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-Object
into ?
: este es un alias estándar de PowerShell conveniente que puede usar si lo desea.