如何使用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",但没有工作。有人对此有什么想法吗?
谢谢
将网关设置为与网卡的静态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