
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-Wide
adiciona várias quebras de linha que provavelmente são confusas Restart-NetAdapter
.
Os objetos produzidos por Get-NetIPAddress
possuem uma InterfaceIndex
propriedade 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-Object
into ?
- este é um alias padrão conveniente do PowerShell que você pode usar se desejar.