Começando com a Configuração de IP no Windows PowerShell

A common SysAdmin task involves managing a PowerShell IP configuration. Typically, one performs this task using the GUI, which is OK. But PowerShell can do the same job and more, which you can put into scripting.

Neste tutorial, você aprenderá como usar alguns cmdlets de gerenciamento de rede no PowerShell para ajudar a gerenciar o endereço IP, gateway e configurações DNS de um host Windows.

Continue lendo e aprimore suas habilidades de solução de problemas de rede com comandos de configuração de IP do PowerShell!

Pré-requisitos

Este tutorial inclui demonstrações práticas. Você precisará de acesso administrativo ao PowerShell em um sistema operacional Windows moderno para acompanhar. Este tutorial utiliza o Windows Server 2022, mas os comandos funcionam nas versões do Windows 10 e mais recentes.

Obtendo Propriedades do Adaptador de Rede (Get-NetAdapter)

Ao solucionar ou coletar o endereço IP de um host, você poderia usar ferramentas tradicionais como ping, ipconfig ou sconfig. Mas com cmdlets do PowerShell, você pode automatizar esse processo com scripts.

Abra o PowerShell e execute o cmdlet Get-NetAdapter abaixo para obter a lista de adaptadores de rede e suas propriedades, como o InterfaceAlias e InterfaceIndex do seu host.

Get-NetAdapter
Getting network adapters’ properties

Observe que o seu adaptador ainda não possui um objeto de Endereço IP. Você precisa saber qual vai usar. Para este tutorial, você está trabalhando com o alias do adaptador Ethernet.

Recuperando uma Configuração de IP do PowerShell (Get-NetIPAddress)

Você listou anteriormente todas as interfaces de rede com um único comando. Mas você também pode listar os valores das propriedades e o endereço IP atual do seu host através do cmdlet Get-NetIPAddress.

Execute o cmdlet abaixo (sem parâmetros) para exibir o endereço de cada adaptador e a configuração IP do PowerShell.

Get-NetIPAddress
Getting all IP address configurations

Agora, execute o seguinte comando para reduzir a saída (Select-Object) para o InterfaceAlias e IPAddress do Ethernet.

Get-NetIPAddress -InterfaceAlias Ethernet | Select-Object -Property InterfaceAlias,IPAddress
Finding the IP address assigned to an interface (Ethernet)

Obtendo informações da rota IP (Get-NetRoute)

Um endereço IP permite que um host se comunique com outros na mesma rede. Mas o que acontece quando o host precisa se comunicar fora dessa rede?

A gateway address is necessary, and the Get-NetRoute cmdlet is what you need. This cmdlet provides information that previous cmdlets you have learned about do not.

Execute o comando Get-NetRoute abaixo para verificar o gateway atual (NextHop) para a interface Ethernet.

Get-NetRoute -InterfaceAlias Ethernet | Where-Object -Property RouteMetric -EQ 0 | Select-Object -Property NextHop

Geralmente, um servidor DHCP fornece o endereço do gateway. Você vai querer capturar este endereço mais tarde para este artigo.

Finding the gateway address assigned to an interface

Obtendo os Endereços IP dos Servidores DNS (Get-DnsClientServerAddress)

O DNS é necessário para a resolução de nomes tanto para redes internas quanto externas. Sem DNS, você teria que lembrar o endereço da internet para cada host em sua rede.

Mas é provável que seu host já tenha o DNS configurado através do DHCP. Você pode usar o cmdlet Get-DnsClientServerAddress para verificar a configuração atual.

Get-DnsClientServerAddress

Registre os endereços IP redirecionando a saída para um arquivo de texto ou anotando-os. Você precisará reatribuir esses endereços de servidor DNS mais tarde neste tutorial.

Verifying the current DNS configuration

Obtendo Configurações de Rede IP (Get-NetIPConfiguration)

Quando você precisar das informações dos três cmdlets anteriores em um só lugar, o cmdlet Get-NetIPConfiguration fará o truque. Uma característica proeminente deste cmdlet é fornecer informações mais focadas.

Execute o cmdlet Get-NetIPConfiguration abaixo para exibir as configurações de rede IP coletadas pelos cmdlets anteriores que você executou.

Get-NetIPConfiguration
Getting IP network configurations

O cmdlet Get-NetIPConfiguration é mais rápido se você tiver apenas uma interface de rede. Mas se você tiver mais de uma interface de rede, talvez seja necessário filtrar as propriedades para evitar a rolagem do console.

Configurando IP, Gateway e Endereço DNS Manualmente

Com os cmdlets que você aprendeu até agora, é hora de colocar seu novo conhecimento em prática. Para este tutorial, você atribuirá um endereço IP estático, gateway e servidores DNS a um host do Windows Server 2022.

Os comandos a partir deste ponto apenas alteram o endereço IP, gateway e configurações DNS para o adaptador de rede especificado. Você deve repetir essas etapas para cada adaptador que deseja alterar.

1. Abra o PowerShell como administrador, e execute o seguinte comando para listar os adaptadores de rede em seu servidor.

Get-NetAdapter

Encontre o comando de identificação de adaptadores de rede instalados

Identifique o adaptador de rede que você deseja alterar. Você pode usar o nome do adaptador ou o número de índice exibido na lista (ou seja, Ethernet).

Current network adapter properties of all installed adapters

2. Em seguida, execute o comando abaixo Net-NetIPAddress para alterar o endereço IPv4 do seu adaptador de rede. O -PrefixLength de 24 mostra que foram utilizados os primeiros 24 bits do endereço IP para a porção de rede do endereço. Certifique-se de substituir o seguinte conforme necessário:

  • AdapterName – O nome ou número de índice do adaptador de rede de destino.
  • ServerAddress – O endereço IPv4 a ser adicionado ao adaptador de rede.
  • GatewayAddress – O endereço do gateway deve estar na mesma sub-rede que o endereço IPv4.
New-NetIPAddress -InterfaceAlias "[AdapterName]" -IPAddress [ServerAddress] -PrefixLength 24 -DefaultGateway [GatewayAddress]
Setting a new IP address and gateway

Relacionado ao cmdlet New-NetIPAddress está o Set-NetIPAddress, que altera a configuração IP existente, enquanto Remove-NetIPAddress exclui uma configuração.

3. Agora, execute o seguinte comando Set-DnsClientServerAddress, que não gera saída, mas altera os servidores DNS. Certifique-se de substituir AdapterName pelo nome do seu adaptador de rede (-InterfaceAlias) ou número de índice (-InterfaceIndex). Este comando configura os servidores DNS para o seu adaptador de rede com os servidores DNS públicos do Google em 8.8.8.8 e 8.8.4.4. No entanto, você pode especificar qualquer endereço IP de servidor DNS válido desejado.

Set-DnsClientServerAddress -InterfaceAlias "[AdapterName]" -ServerAddresses 8.8.8.8, 8.8.4.4

Observe que com o cmdlet Set-DnsClientServerAddress, você pode atribuir um ou mais endereços IP de servidor DNS internos ou voltados para o público.

4. Por fim, execute o seguinte comando Restart-NetAdapter, que não exibe saída no console, mas reinicia o seu adaptador de rede e aplica as alterações. Parabéns! Você acabou de configurar manualmente a interface de rede com uma configuração personalizada.

Restart-NetAdapter -Name Ethernet

Se o seu host tiver apenas um adaptador, como neste tutorial, você pode perder conectividade brevemente, dependendo de como está conectado. Este último passo é essencial para concluir e começar a usar o novo endereço IP.

Conclusão

Conhecer a configuração da sua rede é crucial para manter uma rede saudável. A boa notícia é que você aprendeu sobre quatro comandos básicos de configuração de rede disponíveis nos cmdlets de configuração IP do PowerShell.

Com esse novo conhecimento, você pode facilmente criar um script usando as habilidades de configuração IP do PowerShell como parte de um processo de configuração de servidor mais amplo.

O que vem a seguir? Que tal tentar ajustar opções mais avançadas como MTU, adicionar mais rotas ou redefinir um adaptador para usar DHCP em vez de um endereço estático?

Source:
https://adamtheautomator.com/powershell-ip-configuration/