В PowerShell 3.0 появилась возможность конфигурировать настройки сетевой карты с помощью командлетов. До этого вы могли настроить IP адрес только через WMI или используя классический подход netsh.
Получение IP адреса с использованием DHCP
Для настройки конфигурации сетевой карты в PowerShell используется набор командлетов модуля NetTCPIP
1 |
Get-Command -Module NetTCPIP |
В самом простом случае чтобы настроить сетевую карту для получения IP адреса с использованием DHCP необходимо сначала выбрать необходимую сетевую карту, а потом настроить автоматическое получение как для IP конфигурации так и для DNS
1 2 3 |
$NetAdapter = Get-NetAdapter -Name '*internal*' $NetAdapter | Set-NetIPInterface -Dhcp Enabled $NetAdapter | Set-DnsClientServerAddress -ResetServerAddresses |
Установка IP адреса для сетевого интерфейса
Для работы с IP адресами существует набор команд NetIPAddress
1 |
Get-Command *NetIPAddress* |
Чтобы установить адрес статически опять же необходимо выбрать нужный сетевой адаптер и воспользоваться комадлетом New-NetIPAddress.
1 2 3 |
$NetAdapter = Get-NetAdapter -Name '*internal*' $NetAdapter | New-NetIPAddress -IPAddress 172.20.0.100 -PrefixLength 24 -DefaultGateway 172.20.0.1 $NetAdapter | Set-DnsClientServerAddress -ServerAddresses 172.20.0.8,172.20.0.9 |
Заметьте, если сетевой адаптер всего один, то параметр Name в командлете Get-NetAdapter становится не обязательным.
Безусловно тут используется очень много параметров, если вам хотелось бы написать скрипт, который позволит все это делать одной строчкой с указанием всех необходимых параметров вы можете воспользоваться моей статьей параметризованные скрипты.
Удаление IP адреса
В общем-то удалить IP адрес не сложно.
1 2 3 |
$NetAdapter = Get-NetAdapter -Name '*internal*' $NetAdapter | Remove-NetIPAddress $NetAdapter | Set-DnsClientServerAddress -ResetServerAddresses |
Однако шлюз таким образом удалиться не получится:
Чтобы удалить шлюз необходимо уже настраивать таблицу маршрутизации. Тут возможно два варианта, если знаешь адрес шлюза:
1 |
$NetAdapter | Remove-NetRoute -NextHop 192.168.0.1 |
Или если не знаешь адрес:
1 |
$NetAdapter | Remove-NetRoute -DestinationPrefix 0.0.0.0/0 |
Заключение
В общем-то настройка TCP/IP на интерфейсе не такая и сложная штука. Главное знать несколько команд и помнить что настройка айпиадреса, шлюза и параметров днс — это фактически настройка трех разных объектов.
Почитать напоследок
Осталось только добавить, что модуль NetTCPIP нельзя установить на Windows 7