Windows Powershell在网络适配器上设置IP地址

时间:2018-04-06 23:11:15

标签: windows powershell networking

我需要能够将笔记本电脑插入多个位置的多个不同网络。每个网络都要求我使用静态地址。我目前有一个shell脚本,提示输入网络位置并使用netsh设置IP地址。但是,Microsoft警告他们可能会删除netsh并使用Powershell,所以我试图在Powershell中重新创建我的脚本。

我遇到的问题是,如果我从dhcp转到静态地址,我可以使用:

New-NetIPAddress -InterfaceAlias $myAdapter -AddressFamily IPv4 10.1.2.3 -PrefixLength 24 -Type Unicast -DefaultGateway 10.1.2.1

但是,当使用New-NetIPAddress从静态地址转到另一个静态地址时,只需向适配器添加另一个IP地址(我无法连接任何内容,因为它似乎只使用第一个IP地址)。为了解决这个问题,我可以使用Set-NetIPAddress,但似乎不接受-DefaultGateway参数,因此我分配了新地址,但是使用旧网关。我尝试使用Remove-NetIPAddress,但似乎保留了gateway参数,因此New-NetIPAddress命令失败并显示“Instance DefaultGateway”。如何删除网关以便我可以重新使用New-NetIPAddress或在使用Set-NetIPAddress时替换网关?

1 个答案:

答案 0 :(得分:2)

使用Remove-NetRoute删除网关:

# Remove the static ip
Remove-NetIPAddress -InterfaceAlias $myAdapter

# Remove the default gateway
Remove-NetRoute -InterfaceAlias $myAdapter

# Add the new IP and gateway
New-NetIPAddress -InterfaceAlias $myAdapter -AddressFamily IPv4 10.1.2.4 -PrefixLength 24 -Type Unicast -DefaultGateway 10.1.2.255
相关问题