C# 如何使用C清除网络接口(nic)的默认网关#

C# 如何使用C清除网络接口(nic)的默认网关#,c#,.net,c#-4.0,wmi,C#,.net,C# 4.0,Wmi,我当前正在使用以下方法更改默认网关: ManagementBaseObject gateway = mo.GetMethodParameters("SetGateways"); gateway["DefaultIPGateway"] = new string[] { "192.168.0.1" }; var r = mo.InvokeMethod("SetGateways", gateway, null); 我想知道的是如何清除网关,我尝试将空字符串和空值作为参数,而不是“192.168.0.

我当前正在使用以下方法更改默认网关:

ManagementBaseObject gateway = mo.GetMethodParameters("SetGateways");
gateway["DefaultIPGateway"] = new string[] { "192.168.0.1" };
var r = mo.InvokeMethod("SetGateways", gateway, null);
我想知道的是如何清除网关,我尝试将空字符串和空值作为参数,而不是“192.168.0.1”,但没有成功。有人对此有什么想法吗


谢谢

有许多与WMI无关的配置会导致调用失败,例如启用DHCP。假设
mo
是一个Win32\u NetworkAdapterConfiguration实例,代码本身可能很好


如果还没有,则可能需要使用
r.Properties[“returnvalue”].value的值来获取返回值,并检查返回值是否符合预期。错误代码应该可以缩小问题的范围。

将网关设置为空阵列

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

将网关设置为与NIC的静态IP相同的IP。不知道为什么,但这会清除网关

此方法仅在网络接口卡(NIC)处于静态IP模式时有效。 要清除网关,请将网关设置为在EnableStatic上使用的相同IP

请参阅下页的“备注”:

InvokeMethod的返回值是多少?我的第一次尝试是传入一个空字符串数组,就像@Hand-E-Food在这里给出的答案一样,它在网关上设置了0.0.0.0(我的意思是,我通常在Windows中使用网络和共享中心进行检查时看到了0.0.0),但0.0.0.0与清除它相同吗?然后,我尝试使用
netsh interface ipv4 set address name=“Local Area Connection”gateway=none
,它的工作方式与我真正想要的一样,是空的,而不是0.0.0.0I尝试了您的
netsh
命令,但出现了无效的语法错误。我正在使用Windows7。它似乎需要
source=dhcp | static
。请重试您的命令,然后键入
netsh interface ipv4 show address name=“Local Area Connection”
,查看IP地址或启用DHCP的设置是否已更改。出现相同问题。。。将InParameters设置为Null或空,不会返回我重写的启用DHCP的网关。我试图远离netsh。我正在使用远程服务器,我不想调用进程或psexec会话。谢谢你的回答,我已经尝试过了,它设置为0.0.0.0,我希望它被清除,就像没有一样:),然后我尝试了netsh命令,就像我对我的问题发表评论一样。