NetSh vs NETTCPIP модуль на простой задаче
1) Посмотреть сетевые интерфейсы в системе
netsh int ipv4 show int
Idx Met MTU State Name
— ———- ———- ———— —————————
1 50 4294967295 connected Loopback Pseudo-Interface 1
12 10 1500 connected Ethernet
2) Сконфигурируем статический адрес
netsh int ipv4 set address «Ethernet» static 192.168.100.100 255.255.255.0 192.168.100.1
PS. В отличии от командлета New-NetIPAddress утилита netsh не проверяет из какой подсети шлюз
netsh int ipv4 set address «Ethernet» static 192.168.100.100 255.255.255.0 10.10.10.1
IPv4 Address. . . . . . . . . . . : 192.168.100.100
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 10.10.10.1
3) Изменим шлюз по умолчанию
netsh int ipv4 set address «Ethernet» static 192.168.100.100 255.255.255.0 192.168.100.2
IPv4 Address. . . . . . . . . . . : 192.168.100.100
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.100.2
4) Удалим шлюз по умолчанию
netsh int ipv4 set address «Ethernet» static 192.168.100.100 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.100.100
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
5) Изменим со статического адреса на dhcp
netsh int ipv4 set address «Ethernet» dhcp
IPv4 Address. . . . . . . . . . . : 192.168.0.26
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.1
С утилитой netsh проблем не возникает.
Теперь попробуем произвести подобные манипуляции с модулем NETTCPIP.
1) Посмотреть сетевые интерфейсы в системе
Get-NetAdapter
Name : Ethernet
InterfaceIndex : 12
InterfaceOperationalStatus : Up
AdminStatus : Up
LinkSpeed(Gbps) : 1
MediaConnectionState : Connected
ConnectorPresent : True
2) Убедимся,что адрес получен через DHCP
Get-NetIPConfiguration
InterfaceAlias : Ethernet
InterfaceIndex : 12
IPv4Address : 192.168.0.26
IPv4DefaultGateway : 192.168.0.1
DNSServer : 192.168.0.96
3) Сконфигурируем статический адрес на интерфейсе с номером 12
New-NetIPAddress –InterfaceIndex 12 –IPAddress 192.168.100.100 -PrefixLength 24 -DefaultGateway 192.168.100.1
InterfaceAlias : Ethernet
InterfaceIndex : 12
IPv4Address : 192.168.100.100
IPv4DefaultGateway : 192.168.100.1
DNSServer : 192.168.0.96
PS. Если мы укажем шлюз не из той подсети,то получим ошибку:
New-NetIPAddress –InterfaceIndex 12 –IPAddress 192.168.100.100 -PrefixLength 24 -DefaultGateway 10.10.10.1
New-NetIPAddress : DefaultGateway 10.10.10.1 is not on the same network segment (subnet) that is defined by the IP addr
ess 192.168.100.100 and PrefixLength 24.
At line:1 char:1
+ New-NetIPAddress -InterfaceIndex 12 -IPAddress 192.168.100.100 -PrefixLength 24 …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (MSFT_NetIPAddress:ROOT/StandardCimv2/MSFT_NetIPAddress) [New-NetIPAddr
ess], CimException
+ FullyQualifiedErrorId : Windows System Error 87,New-NetIPAddress
4) Изменим шлюза по умолчанию
1) Remove-NetIPAddress&New-NetIPAddress
С этим уже сложнее,т.к. командлет Set-NetIPAddress не содержит параметр для измения шлюза по умолчанию.
a) Удалим ранее установленные параметры
Remove-NetIPAddress -InterfaceIndex 12 -DefaultGateway 192.168.100.1 -Confirm:$false
b) Установим коректные значения
New-NetIPAddress –InterfaceIndex 12 –IPAddress 192.168.100.100 -PrefixLength 24 -DefaultGateway 192.168.100.2
PS. Но и тут не без сюрприза,если установить шлюз из другой подсети(например 10.10.10.1),
то шлюз по умолчанию удалить с помощью Remove-NetIPAddress не получится,пока не назначим адрес из подсети шлюза.
При использовании Remove-NetRoute проблем не возникает.
IPv4DefaultGateway : 10.10.10.1
2) New-NetRoute&Remove-NetRoute
a) Добавим новый шлюз
New-NetRoute -InterfaceIndex 12 -NextHop 192.168.100.2 -DestinationPrefix 0.0.0.0/0
InterfaceAlias : Ethernet
InterfaceIndex : 12
IPv4Address : 192.168.100.100
IPv4DefaultGateway : {192.168.100.2, 192.168.100.1}
DNSServer : 192.168.0.96
b) Удалим старый шлюз
Remove-NetRoute -InterfaceIndex 12 -NextHop 192.168.100.1 -Confirm:$false
InterfaceAlias : Ethernet
InterfaceIndex : 12
IPv4Address : 192.168.100.100
IPv4DefaultGateway : 192.168.100.2
DNSServer : 192.168.0.96
5) Удалим шлюз по умолчанию
1) Используя Remove-NetRoute
a) Remove-NetRoute -InterfaceIndex 12 -NextHop 192.168.100.1 -Confirm:$false
InterfaceAlias : Ethernet
InterfaceIndex : 12
IPv4Address : 192.168.100.100
IPv4DefaultGateway :
DNSServer : 192.168.0.96
b) Remove-NetRoute -InterfaceIndex 12 -DestinationPrefix 0.0.0.0/0 -Confirm:$false
Позволяет удалить,когда больше 2-ух шлюзов по умолчанию
2) Используя Remove-NetIPAddress
a) Удалим ранее установленные параметры
Remove-NetIPAddress -InterfaceIndex 12 -DefaultGateway 192.168.100.1 -Confirm:$false
b) Установим коректные значения
New-NetIPAddress –InterfaceIndex 12 –IPAddress 192.168.100.100 -PrefixLength 24
6) Изменим со статического адреса на dhcp
Set-NetIPInterface -InterfaceIndex 12 -Dhcp Enabled
PS. В этом случае остается шлюз по умолчанию,что нам совершенно не нужно.
New-NetIPAddress -InterfaceIndex 12 -IPAddress 192.168.100.100 -PrefixLength 24 -DefaultGateway 192.168.100.2
InterfaceAlias : Ethernet
InterfaceIndex : 12
IPv4Address : 192.168.100.100
IPv4DefaultGateway : {192.168.100.2, 192.168.100.1}
DNSServer : 192.168.0.96
Теперь у нас два шлюза.
a) Удалим ранее установленные параметры(остается шлюз 192.168.100.2)
Remove-NetIPAddress -InterfaceIndex 12 -DefaultGateway 192.168.100.1 -Confirm:$false
b) Установим коректные значения
New-NetIPAddress –InterfaceIndex 12 –IPAddress 192.168.100.100 -PrefixLength 24
с) Удалим теперь второй шлюз
Remove-NetIPAddress -InterfaceIndex 12 -DefaultGateway 192.168.100.2 -Confirm:$false
d) Установим получать через DHCP
Set-NetIPInterface -InterfaceIndex 12 -Dhcp Enabled
или
Set-NetIPInterface -InterfaceIndex 12 -Dhcp Enabled
Remove-NetRoute -InterfaceIndex 12 -NextHop 192.168.100.1 -Confirm:$false