Empezando con la configuración de IP de 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.

En este tutorial, aprenderás cómo utilizar algunos cmdlets de administración de red en PowerShell para ayudar a administrar la dirección IP, la puerta de enlace y la configuración de DNS de un host de Windows.

¡Sigue leyendo y mejora tus habilidades de solución de problemas de red con los comandos de configuración de IP de PowerShell!

Prerrequisitos

Este tutorial incluye demostraciones prácticas. Necesitarás acceso administrativo a PowerShell en un sistema operativo Windows moderno para seguir los pasos. Este tutorial utiliza Windows Server 2022, pero los comandos funcionan en versiones de Windows 10 y posteriores.

Obteniendo las propiedades del adaptador de red (Get-NetAdapter)

Al solucionar problemas o recopilar la dirección IP de un host, podrías utilizar herramientas tradicionales como ping, ipconfig o sconfig. Pero con los cmdlets de PowerShell, puedes automatizar este proceso mediante scripting.

Abre PowerShell y ejecuta el siguiente cmdlet Get-NetAdapter para obtener la lista de adaptadores de red y sus propiedades, como el Alias de la interfaz y el Índice de la interfaz del host.

Get-NetAdapter
Getting network adapters’ properties

Ten en cuenta que tu adaptador aún no tiene un objeto de dirección IP. Necesitas saber cuál vas a utilizar. Para este tutorial, estás trabajando con el alias del adaptador Ethernet.

Obtener una dirección de configuración de IP de PowerShell (Get-NetIPAddress)

Anteriormente, enumeraste todas las interfaces de red con un solo comando. Pero también puedes listar los valores de propiedad y la dirección IP actual de tu host a través del cmdlet Get-NetIPAddress.

Ejecuta el siguiente comando (sin parámetros) para mostrar la dirección de cada adaptador y la configuración de IP de PowerShell.

Get-NetIPAddress
Getting all IP address configurations

Ahora, ejecuta el siguiente comando para reducir la salida (Select-Object) a InterfaceAlias e IPAddress de Ethernet.

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

Obtención de la Información de Ruta IP (Get-NetRoute)

Una dirección IP permite que un host se comunique con otros en la misma red. ¿Pero qué sucede cuando el host necesita comunicarse fuera de esa red?

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.

Ejecuta el siguiente comando Get-NetRoute para verificar la puerta de enlace actual (NextHop) para la interfaz Ethernet.

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

Normalmente, un servidor DHCP suministra la dirección de la puerta de enlace. Querrás capturar esta dirección más tarde para este artículo.

Finding the gateway address assigned to an interface

Obtención de Direcciones IP del Servidor DNS (Get-DnsClientServerAddress)

El DNS es necesario para la resolución de nombres tanto en redes internas como externas. Sin DNS, tendrías que recordar la dirección de internet de cada host en tu red.

Sin embargo, es probable que tu host ya tenga configurado DNS a través de DHCP. Puedes utilizar el cmdlet Get-DnsClientServerAddress para verificar la configuración actual.

Get-DnsClientServerAddress

Registra las direcciones IP redirigiendo la salida a un archivo de texto o anotándolas. Más adelante en este tutorial, deberás volver a asignar estas direcciones de servidor DNS.

Verifying the current DNS configuration

Obtención de configuraciones de red IP (Get-NetIPConfiguration)

Cuando necesites la información de los tres cmdlets anteriores de una vez, el cmdlet Get-NetIPConfiguration hará el truco. Una característica destacada de este cmdlet es que proporciona información más específica.

Ejecuta el cmdlet Get-NetIPConfiguration a continuación para mostrar las configuraciones de red IP recopiladas por los cmdlets anteriores que ejecutaste.

Get-NetIPConfiguration
Getting IP network configurations

El cmdlet Get-NetIPConfiguration es más rápido si solo tienes una interfaz de red. Pero si tienes más de una interfaz de red, es posible que tengas que filtrar propiedades para evitar que la consola se desplace.

Configuración manual de la dirección IP, puerta de enlace y DNS

Con los cmdlets que has aprendido hasta ahora, es hora de poner tus nuevos conocimientos a trabajar. Para este tutorial, asignarás una dirección IP estática, puerta de enlace y servidores DNS a un host de Windows Server 2022.

Los comandos a partir de este punto solo cambian la dirección IP, la puerta de enlace y la configuración de DNS para el adaptador de red especificado. Debes repetir estos pasos para cada adaptador que quieras cambiar.

1. Abre PowerShell como administrador, y ejecuta el siguiente comando para listar los adaptadores de red en tu servidor.

Get-NetAdapter

Comando para encontrar adaptadores de red instalados

Identifica el adaptador de red que deseas cambiar. Puedes usar el nombre del adaptador o el número de índice que se muestra en la lista (es decir, Ethernet).

Current network adapter properties of all installed adapters

2. A continuación, ejecute el siguiente comando Net-NetIPAddress para cambiar la dirección IPv4 de su adaptador de red. El -PrefixLength de 24 muestra que se utilizan los primeros 24 bits de la dirección IP para la parte de red de la dirección. Asegúrese de reemplazar lo siguiente en consecuencia:

  • NombreDelAdaptador – El nombre o número de índice de su adaptador de red objetivo.
  • DirecciónDelServidor – La dirección IPv4 que se va a agregar al adaptador de red.
  • DirecciónDeLaPuertaDeEnlace – La dirección de la puerta de enlace debe estar en la misma subred que la dirección IPv4.
New-NetIPAddress -InterfaceAlias "[AdapterName]" -IPAddress [ServerAddress] -PrefixLength 24 -DefaultGateway [GatewayAddress]
Setting a new IP address and gateway

Relacionado con el cmdlet New-NetIPAddress está Set-NetIPAddress, que cambia la configuración IP existente, mientras que Remove-NetIPAddress elimina una configuración.

3. Ahora, ejecuta el siguiente comando Set-DnsClientServerAddress, el cual no produce ninguna salida, pero cambia los servidores DNS. Asegúrate de reemplazar AdapterName con el nombre de tu adaptador de red (-InterfaceAlias) o número de índice (-InterfaceIndex). Este comando configura los servidores DNS de tu adaptador de red con los servidores DNS públicos de Google en 8.8.8.8 y 8.8.4.4. Sin embargo, puedes especificar cualquier dirección IP válida de servidor DNS que desees.

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

Ten en cuenta que con el cmdlet Set-DnsClientServerAddress, puedes asignar una o más direcciones IP de DNS internas o públicas.

4. Por último, ejecuta el siguiente comando Restart-NetAdapter, el cual no imprime ninguna salida en la consola, pero reinicia tu adaptador de red y aplica los cambios. ¡Felicidades! Acabas de configurar manualmente tu interfaz de red con una configuración personalizada.

Restart-NetAdapter -Name Ethernet

Si tu anfitrión solo tiene un adaptador, como en este tutorial, es posible que pierdas brevemente la conectividad, dependiendo de cómo estés conectado. Este último paso es esencial para completar y comenzar a usar la nueva dirección IP.

Conclusión

Conocer la configuración de tu red es crucial para mantener una red saludable. La buena noticia es que aprendiste sobre cuatro comandos básicos de configuración de red disponibles desde los cmdlets de configuración IP de PowerShell.

Con este nuevo conocimiento, puedes crear fácilmente un script utilizando las capacidades de configuración IP de PowerShell como parte de un proceso de configuración de servidor más amplio.

¿Qué sigue? ¿Por qué no intentar ajustar opciones más avanzadas como MTU, agregar más rutas o restablecer un adaptador para usar DHCP en lugar de una dirección estática?

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