25.05.2023

Настройка нескольких IP адресов в Windows с помощью PowerShell

В некоторых случаях, например, на веб-серверах, требуется настроить на одном сетевом адаптере более одного IP адреса. Если это один сервер и в нём одна или две сетевые карты и небольшое количество дополнительных IP адресов, то, как правило, настройка через графический интерфейс проблем не вызовет. Но что делать, если серверов больше десяти и на каждом несколько сетевых адаптеров и у каждого несколько  IP адресов? Настройка через графический интерфейс в данном случае займёт очень немало времени. В таком случае на помощь придут средства автоматизации Windows — PowerShell.

Далее будет рассмотрен процесс настройки для версии ОС Windows Server 2016/2019.

Запускаем Powershell от имени администратора.

Сделать это можно, кликнув правой кнопкой по меню «Пуск» и выбрав «Windows PowerShell (Admin)» в случае английской версии ОС.

Скриншот №1. Запуск Powershell от имени Администратора

Далее откроется окно Powershell. Теперь необходимо определить, на каком интерфейсе необходимо добавить требуемые IP-адреса. Используя команду ниже  определяем требуемый сетевой интерфейс:

Get-NetAdapter

Скриншот № 2. Получение списка сетевых адаптеров

В данном случае один сетевой адаптер с именем «Ethernet» , его и будем использовать. Узнаем вначале, какие уже настроены IP на данном адаптере :

Get-netIpAddress -ifalias Ethernet -addressFamily Ipv4 | ft

Скриншот №3. Информация об уже настроенных IP на выбранном адаптере

Для добавления нового адреса, например 192.168.10.10, необходимо использовать следующую команду:

New-NetIPAddress -addressfamily Ipv4 -IPAddress 192.168.10.10 -PrefixLength 24 -InterfaceAlias “Ethernet” -SkipAsSource $True

Проверим результат:

Get-netIpAddress -ifalias Ethernet -addressFamily Ipv4 | ft -AutoSize -Wrap

Скриншот №4. Проверка присвоения нового IP

Как видно, адаптеру присвоен ещё один IPv4 адрес — 192.168.10.10.

Если необходимо, чтобы исходящий трафик отправлялся с нового IP адреса, необходимо параметру SkipAsSource присвоить значение false:

Скриншот №5. Запрещаем новому IP быть в качестве исходящего по умолчанию для трафика

Get-NetIPAddress 192.168.10.10 | Set-NetIPAddress -SkipAsSource $False

В случае, если необходимо добавить большее число адресов, например 5 , то можно воспользоваться следующим скриптом.

Используя массив чисел, например, от 11 до 16 и цикл, добавляем ещё 5 IP адресов:

11..16 | foreach-object {New-NetIpAddress -ifalias Ethernet -AddressFamily IPv4 -PrefixLength 24 -IPAddress "192.168.10.$_" -verbose}

Скриншот №6. Добавление нескольких IP с помощью скрипта

После выполнения команды проверим знакомой уже командой :

Get-NetIPAddress

Скриншот №7. Проверка присвоения множества IP сетевому адаптеру

Заключение: в данной статье мы рассмотрели возможности использования Powershell для автоматизации назначения нескольких IP адресов на одном сетевом интерфейсе.