我可以在不知道接口 IP 的情况下删除接口上的默认网关吗?

我可以在不知道接口 IP 的情况下删除接口上的默认网关吗?

我正在尝试编写一个涉及修改接口的 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

相关内容