Como reiniciar uma interface de rede específica pelo powershell

0

Estou tentando reiniciar uma interface de rede pelo powershell com um endereço IP específico. Eu 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 estão funcionando corretamente.

Restart-NetAdapter -Name $iface

É o caminho certo para usar a variável?

Usando a versão 5 do PowerShell.

    
por Marlon 26.08.2017 / 03:12

1 resposta

1

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-Wide adiciona várias quebras de linha que provavelmente confundem Restart-NetAdapter .

Os objetos produzidos por Get-NetIPAddress possuem uma propriedade InterfaceIndex que podemos usar para adquirir um objeto de adaptador de rede a partir de 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 aliasing de Where-Object em ? - esse é um alias padrão conveniente do PowerShell que você pode usar se quiser.

    
por 26.08.2017 / 04:38