我正在尝试编写一个涉及修改接口的 IPv4 配置的脚本。该接口可能已经配置了以下任何一项,也可能尚未配置:
- IP地址
- 子网掩码
- 默认网关
- DNS 服务器
- WINS 服务器
当我的剧本完成后,我想要仅有的我已设置的选项将被配置。(例如:如果我不设置网关、DNS 或 WINS 服务器,那么我就不想配置任何内容。)我认为确保这一点的最简单方法是尽可能地清除现有配置,然后构建我需要的内容。
保留现有的 IP 地址和子网掩码是可以的,因为这些肯定会每次都被覆盖。使用 删除 DNS 和 WINS 服务器看起来相当简单netsh
。
netsh interface ipv4 delete dns "LAN" all
netsh interface ipv4 delete wins "LAN" all
我的问题与删除网关有关。似乎每个netsh
用于修改默认网关的命令都需要当前 IP 地址作为参数。然而,这并不总是已知的。有没有办法netsh
只删除为接口配置的所有网关,而不指定 IP?
答案1
保留现有的 IP 地址和子网掩码是可以的,因为这些每次肯定会被覆盖。
由于您无论如何都会覆盖 IP 和子网掩码,因此只需netsh
在同一步骤中使用删除网关即可。例如:
netsh interface ipv4 set address "Local Area Connection" static 192.168.1.100 255.255.255.0 none
在这里,你放置没有任何默认网关通常会去往的位置。这指定此 IP 不使用任何网关。
答案2
删除默认网关:
route delete -p 0.0.0.0