Como reiniciar uma interface de rede específica pelo PowerShell

Como reiniciar uma interface de rede específica pelo PowerShell

Estou tentando reiniciar uma interface de rede pelo PowerShell com um endereço IP específico. Fiz as seguintes declarações:

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

Tenho a interface com todo o formato, mas usando a variável abaixo as coisas não funcionam corretamente.

Restart-NetAdapter -Name $iface

É a maneira correta de usar a variável?

Usando o PowerShell versão 5.

Responder1

Os cmdlets de formatação retornam strings, que são muito agradáveis ​​para os humanos lerem, mas não são mais os objetos reais. Em particular, Format-Wideadiciona várias quebras de linha que provavelmente são confusas Restart-NetAdapter.

Os objetos produzidos por Get-NetIPAddresspossuem uma InterfaceIndexpropriedade que podemos usar para adquirir um objeto adaptador de rede Get-NetAdapter. Em seguida, o objeto adaptador pode ser canalizado para Restart-NetAdapter.

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

Observe também o alias de Where-Objectinto ?- este é um alias padrão conveniente do PowerShell que você pode usar se desejar.

informação relacionada