使用“netsh interface ip set address”覆盖另一个适配器的地址?

使用“netsh interface ip set address”覆盖另一个适配器的地址?

我是OpenConnectVPN 客户端。

我们正在尝试现代化和改进对 Windows 的支持。我们使用一种用户可自定义的 JScript,称为vpnc-script-win.js根据VPN服务器发送的配置来配置IPv4/6地址、路由和DNS。

这个脚本需要做的一件事是为 VPN 网络接口设置特定的 IP 地址。我们使用以下命令netsh interface ip set address对 IPv4 执行此操作,如下所示:

        run("netsh interface ip set address \"" + env("TUNIDX") + "\" static " +
            env("INTERNAL_IP4_ADDRESS") + " " + env("INTERNAL_IP4_NETMASK") + " store=active");

该命令的一个限制是它失败如果有问题的 IP 地址被另一个适配器“使用”(即使该适配器目前尚未启动并运行):

截屏

我想知道是否有任何方法可以覆盖此行为,并且力量IP 地址的设置与另一个适配器上设置的地址冲突。我在 Microsoft 文档中找不到任何内容来解释如何以编程方式执行此操作。

但是,使用控制面板在 Windows 上配置网络接口图形用户界面我知道事实上可能的单击后会出现一个简短的警告,以便在 Windows 上配置冲突的 IP 地址。

那么:有没有办法在 Windows 上为适配器设置 IP 地址即使另一个适配器(据称)正在使用该地址?理想情况下,这将使用命令行工具完成,因为我们更愿意将所有 IP/路由/DNS 配置保留在此用户可自定义的脚本中,而不是保留在我们的二进制代码中。

相关内容