Olá pessoal,
Hoje vamos aprender como configurar um endereço de IP estático em uma placa de rede usando o Powershell no Windows. Para isso vamos usar o modulo NetAdapter que vem pré instalado do Windows 7 em diante.
Para listar os adaptadores de rede podemos utilizar o comando Get-NetAdapter e filtrar os que tem a propriedade Status com valor up, são essas que estao habilitadas no windows.
Get-NetAdapter | Where-Object -Property Status -eq -Value 'up'
Com isso voce poderá identificar qual interface deseja modificar, lembre-se do valor exibido em ‘ifIndex’ ele é o indice da interface para localiza-la mais tarde. No meu caso o indice da interface que quero modificar é 41 então vou armazenar o retorno do comando especificando a interface em uma variável:
$netAdapter = Get-NetAdapter -InterfaceIndex '41'
Agora precisamos remover a configuração de IP atual da interface antes de criar uma nova, para isso vamos usar o comando Remove-NetIPAddress, caso tenha certeza da modificaçao pode acrescentar o parametro -Confirm:$false para que não seja solicitada confirmação da ação.
Remove-NetIPAddress -InterfaceIndex $netAdapter.ifIndex -AddressFamily 'IPv4'
Agora precisamos remover a configuração do Gateway da interface também, para isso iremos utilizar o comando Remove-NetRoute caso tenha certeza da ação e não queira um pedido de confirmação por rota removida pelo comando utilize -Confirm:$false aqui também.
Remove-NetRoute -InterfaceIndex $netAdapter.ifIndex -AddressFamily 'IPv4'
Agora podemos criar a nova configuração de IP na interface, para isso vamos utilizar o comando New-NetIPAddress, em AddressFamily você deverá informar se é um IP tipo v4 ou v6 que esta informando, em IpAddress deverá informar o IP que deseja definir para a interface, em PrefixLength seria o prefixo de rede em bits, por exemplo se informar 24 será equivalente a mascara de rede 255.255.255.0, e por fim qual o IP de Gateway de rede padrão que será utilizado.
$NetIPAddress = @{
InterfaceIndex = $netAdapter.ifIndex
AddressFamily = 'IPv4'
IPAddress = '192.168.5.200'
PrefixLength = '24'
DefaultGateway = '192.168.5.1'
}
New-NetIPAddress @NetIPAddress
Por fim podemos utilizar o comando Set-DnsClientServerAddress para configurar o IP dos servidores de DNS dessa interface dentro de uma array, para isso podemos informar os valores entre aspas dentro da declaração @() .
Set-DnsClientServerAddress -InterfaceIndex $netAdapter.ifIndex -ServerAddresses @('192.168.5.5','192.168.5.6')
Podemos utilizar o comando Get-NetIPConfiguration para validar se as configurações foram aplicadas com sucesso:
Get-NetIPConfiguration -InterfaceIndex $netAdapter.ifIndex
Caso queira voltar a utilizar o DHCP para entregar o endereço de IP para a interface repita os passos anteriores para remover as configurações atuais e utilize os seguintes parametros para utilizar a configuração automatica:
Set-NetIPInterface -InterfaceIndex $netAdapter.ifIndex -DHCP Enabled
Set-DnsClientServerAddress -InterfaceIndex $netAdapter.ifIndex -ResetServerAddresses
Dúvidas? Sugestões? Comente!
Até a próxima!