如何使用c#清除网卡的默认网关

本文关键字:默认 网关 网卡 清除 何使用 | 更新日期: 2023-09-27 18:03:42

我正在使用:

更改默认网关
ManagementBaseObject gateway = mo.GetMethodParameters("SetGateways");
gateway["DefaultIPGateway"] = new string[] { "192.168.0.1" };
var r = mo.InvokeMethod("SetGateways", gateway, null);

我想知道的是如何清除网关,我尝试空字符串和空值作为参数而不是"192.168.0.1",但没有工作。有人对此有什么想法吗?

谢谢

如何使用c#清除网卡的默认网关

将网关设置为与网卡的静态IP相同的IP。不知道为什么,但这扫清了障碍。

有许多配置会导致调用失败,例如启用DHCP,而这些配置与WMI无关。假设mo是Win32_NetworkAdapterConfiguration实例,代码本身可能没有问题。

如果你还没有,你可能想使用r.Properties["returnvalue"].Value的值来获得返回值,并检查返回值是你所期望的(MSDN ref)。错误代码应该会缩小问题范围。

设置网关为空数组

ManagementBaseObject gateway = mo.GetMethodParameters("SetGateways");
gateway["DefaultIPGateway"] = new string[] {};
var r = mo.InvokeMethod("SetGateways", gateway, null);

此方法仅在网卡设置为静态IP模式时有效。要清除网关,请将网关设置为与EnableStatic相同的IP。

请见下一页"备注":https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/setgateways-method-in-class-win32-networkadapterconfiguration