Configuración del adaptador de red con PowerShell: dirección IP, DNS, puerta de enlace predeterminada, rutas estáticas

En este artículo, le mostraremos cómo configurar los parámetros del adaptador de red en Windows a través de PowerShell. Aprenderemos cómo obtener y configurar una dirección IP estática y DNS (servidores de nombres), configurar su interfaz de red para obtener la configuración IP de un servidor DHCP. Puede usar estos cmdlets para configurar la red en las versiones Core / Nano de Windows Server, en Hyper-V Server, para cambiar la configuración de IP en computadoras / servidores remotos y en sus scripts PS.

Anteriormente, el netsh interface ipv4 El comando se utilizó para configurar los ajustes de red de Windows desde la CLI. En PowerShell 3.0 y versiones posteriores, puede usar PowerShell integrado NetTCPIP módulo para administrar la configuración de red de Windows.

Para obtener la lista de cmdlets en este módulo, ejecute el siguiente comando:

get-command -module NetTCPIP

Administrar la configuración de red de Windows con el módulo PowerShell NetTCPIP

Este módulo también incluye el cmdlet Test-NetConnection que puede usar para probar la disponibilidad del puerto TCP en equipos remotos.

Administrar adaptadores de red con PowerShell

Muestre la lista de interfaces de red disponibles en una computadora:

Get-NetAdapter

El cmdlet devuelve el nombre de la interfaz, su estado (arriba / abajo), la dirección MAC y la velocidad del puerto.

En este ejemplo, tengo varios adaptadores de red en mi computadora (además de la conexión física, Ethernet0, Tengo algunas interfaces de red Hyper-V y VMWare Player).

Get-NetAdapter: enumera los adaptadores de red conectados

Puede hacer referencia a las interfaces de red por sus nombres o índices (el Índice columna). En nuestro ejemplo, para seleccionar el adaptador LAN físico Intel 82574L, use el comando:

Get-NetAdapter -Name "Ethernet0"

o:

Get-NetAdapter -InterfaceIndex 8

powershell Get-NetAdapter seleccione NIC por nombre

Puede cambiar el nombre del adaptador:

Rename-NetAdapter -Name Ethernet0 -NewName LAN

Para deshabilitar una interfaz de red, use este comando:

Get-NetAdapter -InterfaceIndex 13| Disable-NetAdapter

Cuando habilita una interfaz, no puede usar su índice ya que aún no está asignado. Puede especificar un nombre de adaptador o una descripción:

Enable-NetAdapter -InterfaceDescription “Hyper-V Virtual Ethernet Adapter"

Usar PowerShell para deshabilitar un adaptador de red

Si se especifica una VLAN para un adaptador, puede mostrarla de la siguiente manera:

Get-NetAdapter | ft Name, Status, Linkspeed, VlanID

Así es como puede obtener la información sobre el controlador del adaptador de red utilizado:

Get-NetAdapter | ft Name, DriverName, DriverVersion, DriverInformation, DriverFileName

enumerar los controladores usados ​​del adaptador de red

La información sobre adaptadores de red físicos (ranura PCI, bus, etc.):

Get-NetAdapterHardwareInfo

¿Cómo ver la configuración del adaptador de red TCP / IP con PowerShell?

Para obtener la configuración actual del adaptador de red (dirección IP, DNS, puerta de enlace predeterminada):

Get-NetIPConfiguration -InterfaceAlias Ethernet0

Get-NetIPConfiguration: recupere la configuración de IP en Windows a través de PowerShell

Para mostrar información detallada sobre la configuración actual de TCP / IP del adaptador de red, utilice este comando:

Get-NetIPConfiguration -InterfaceAlias Ethernet0 -Detailed

En este caso, se muestra el perfil de red asignado (NetProfile.NetworkCategory) de la interfaz, la configuración de MTU (NetIPv4Interface.NlMTU), si está habilitada la obtención de una dirección IP de DHCP (NetIPv4Interface.DHCP) y otra información útil.

Información detallada de Get-NetIPConfiguration

Para obtener solo la dirección IPv4 de la interfaz:

(Get-NetAdapter -Name ethernet0 | Get-NetIPAddress).IPv4Address

Uso de PowerShell para establecer una dirección IP estática

Intentemos establecer una dirección IP estática para la NIC. Para cambiar una dirección IP, una máscara de subred y una puerta de enlace predeterminada para una interfaz de red, utilice:

New-NetIPAddress –IPAddress 192.168.2.50 -DefaultGateway 192.168.2.1 -PrefixLength 24 -InterfaceIndex 8

Puede establecer una dirección IP utilizando una estructura de matriz (más visualmente):

$ipParams = @{
InterfaceIndex = 8
IPAddress = "192.168.2.50"
PrefixLength = 24
AddressFamily = "IPv4"
}
New-NetIPAddress @ipParams

Si la dirección IP estática ya se ha configurado y desea cambiarla, el Set-NetIPAddress se utiliza el cmdlet:

Set-NetIPAddress -InterfaceIndex 8 -IPAddress 192.168.2.90

Para deshabilitar la obtención de una dirección IP de DHCP para su adaptador, ejecute el comando:

Set-NetIPInterface -InterfaceAlias Ethernet0 -Dhcp Disabled

Para ver la tabla de enrutamiento, se usa el cmdlet Get-NetRoute. Para agregar una nueva ruta, use el New-NetRoute cmdlet:

New-NetRoute -DestinationPrefix "0.0.0.0/0" -NextHop "192.168.2.2" -InterfaceIndex 8

Para deshabilitar el protocolo IPv6 para el adaptador de red:

Get-NetAdapterBinding -InterfaceAlias Ethernet0 | Set-NetAdapterBinding -Enabled:$false -ComponentID ms_tcpip6

Set-DnsClientServerAddress: Establecer direcciones de servidor DNS primario y secundario

Para configurar las direcciones IP del servidor DNS primario y secundario en Windows, use el Set-DNSClientServerAddress cmdlet. Por ejemplo:

Set-DNSClientServerAddress –InterfaceIndex 8 –ServerAddresses 192.168.2.11,10.1.2.11

También puede configurar servidores de nombres usando una matriz:

$dnsParams = @{
InterfaceIndex = 8
ServerAddresses = ("8.8.8.8","8.8.4.4")
}
Set-DnsClientServerAddress @dnsParams

Después de cambiar la configuración de DNS, puede borrar la caché de resolución:

Clear-DnsClientCache

¿Cómo cambiar la dirección IP estática a DHCP usando PowerShell?

Para permitir que la computadora obtenga una dirección IP dinámica del servidor DHCP para el adaptador de red, ejecute este comando:

Set-NetIPInterface -InterfaceAlias Ethernet0 -Dhcp Enabled

Borre la configuración del servidor DNS:

Set-DnsClientServerAddress –InterfaceIndex 8 -ResetServerAddresses

Y reinicie su adaptador para obtener una dirección IP automáticamente del servidor DHCP:

Restart-NetAdapter -InterfaceAlias Ethernet0

Si anteriormente tenía configurada una puerta de enlace predeterminada, elimínela:

Set-NetIPInterface -InterfaceAlias Ethernet0| Remove-NetRoute -Confirm:$false

¿Cómo cambiar de forma remota la dirección IP y la configuración de DNS con PowerShell?

Puede usar PowerShell para cambiar de forma remota la dirección IP o la configuración del servidor DNS en varios equipos remotos. Supongamos que su tarea es cambiar la configuración de DNS para todos los servidores en el contenedor de AD específico (unidad organizativa). Para obtener la lista de equipos en el siguiente script, se usa el cmdlet Get-ADComputer y WinRM para conectarse a los equipos de forma remota (el cmdlet Invoke-Command):

$Servers = Get-ADComputer -SearchBase ‘OU=Servers,OU=Berlin,OU=DE,DC=woshub,DC=cpm’ -Filter '(OperatingSystem -like "Windows Server*")' | Sort-Object Name
ForEach ($Server in $Servers) {
Write-Host "Server $($Server.Name)"
Invoke-Command -ComputerName $Server.Name -ScriptBlock {
$NewDnsServerSearchOrder = "192.168.2.11","8.8.8.8"
$Adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.DHCPEnabled -ne 'True' -and $_.DNSServerSearchOrder -ne $null}
Write-Host "Old DNS settings: "
$Adapters | ForEach-Object {$_.DNSServerSearchOrder}
$Adapters | ForEach-Object {$_.SetDNSServerSearchOrder($NewDnsServerSearchOrder)} | Out-Null
$Adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.DHCPEnabled -ne 'True' -and $_.DNSServerSearchOrder -ne $null}
Write-Host "New DNS settings: "
$Adapters | ForEach-Object {$_.DNSServerSearchOrder}
}
}

Artículos Interesantes