我目前正在使用以下方式更改默认网关:
ManagementBaseObject gateway = mo.GetMethodParameters("SetGateways");
gateway["DefaultIPGateway"] = new string[] { "192.168.0.1" };
var r = mo.InvokeMethod("SetGateways", gateway, null);
我想知道的是如何清除网关,我尝试将空字符串和空值作为参数而不是“192.168.0.1”但不起作用。有人对此有任何想法吗?
由于
答案 0 :(得分:1)
将网关设置为与NIC的静态IP相同的IP。不知道为什么,但这清除了网关。
答案 1 :(得分:1)
仅当网络接口卡(NIC)处于静态IP模式时,此方法才有效。 要清除网关,请将网关设置为与EnableStatic上使用的IP相同。
答案 2 :(得分:0)
有许多配置会导致调用失败,例如启用DHCP,这与WMI无关。假设mo
是Win32_NetworkAdapterConfiguration实例,代码本身可能没问题。
如果您还没有,可能需要使用r.Properties["returnvalue"].Value
的值来获取返回值,并检查返回值是否符合预期(MSDN ref)。错误代码应该缩小问题范围。
答案 3 :(得分:0)
将网关设置为空数组。
ManagementBaseObject gateway = mo.GetMethodParameters("SetGateways");
gateway["DefaultIPGateway"] = new string[] {};
var r = mo.InvokeMethod("SetGateways", gateway, null);