Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置不在线的网络接口的IP地址(IEnabled not true)/未连接电缆?_C#_Networking_Wmi - Fatal编程技术网

C# 设置不在线的网络接口的IP地址(IEnabled not true)/未连接电缆?

C# 设置不在线的网络接口的IP地址(IEnabled not true)/未连接电缆?,c#,networking,wmi,C#,Networking,Wmi,是否可以为当前已关闭的网络接口设置IP地址(或其他任何内容) 我正在使用WMI,这意味着ManagementObjectCollection和Invoke方法。但是,似乎没有办法在当前未连接的网络适配器上以c#配置IP 没有错误消息。 例如,我为wifi接口手动设置IP,并通过WMI将其设置为DHCP ManagementObjectSearcher query = new ManagementObjectSearcher("Select * from Win32_NetworkAdap

是否可以为当前已关闭的网络接口设置IP地址(或其他任何内容)

我正在使用WMI,这意味着
ManagementObjectCollection
Invoke
方法。但是,似乎没有办法在当前未连接的网络适配器上以c#配置IP

没有错误消息。 例如,我为wifi接口手动设置IP,并通过WMI将其设置为DHCP

    ManagementObjectSearcher query = new ManagementObjectSearcher("Select * from Win32_NetworkAdapterConfiguration where SettingID=\"" + selectedProfile.AdapterGUID + "\"");
    ManagementObjectCollection moc = query.Get();

    foreach (ManagementObject mo in moc)
    {
        ManagementBaseObject newDHCPIP = mo.GetMethodParameters("EnableDHCP");
        mo.InvokeMethod("EnableDHCP", newDHCPIP, null);
        ManagementBaseObject newDHCPDNS = mo.GetMethodParameters("SetDNSServerSearchOrder");
        newDHCPDNS["DNSServerSearchOrder"] = null;
        mo.InvokeMethod("SetDNSServerSearchOrder", newDHCPDNS, null);
        ManagementBaseObject newDHCPRenew = mo.GetMethodParameters("RenewDHCPLease");
        mo.InvokeMethod("RenewDHCPLease", newDHCPRenew, null);
        mo.Dispose();
    }
我100%确信我选择了正确的网络适配器。但当我设置它,并查看配置(通过windows网络和共享中心,适配器属性)时,仍然存在静态IP


只有在我连接到wifi网络后,它才能工作,然后我查看配置,发现有DHCP

我认为最好的解决方案是使用
netsh
,因为WMI无法正常工作。

太模糊了。什么是IPEnabled?IPEnabled=true在您将网络电缆插入网卡时设置为网络接口,当网络处于联机状态时。。。(在w7上,在w2000上都是正确的,但这并不重要,重要的是如何在接口脱机时在c#中设置网络接口的IP地址。您能否更具体一点,特别是显示用于查找接口和操作接口的代码(大概)如果接口处于打开状态,则可以正常工作,但如果接口处于关闭状态,则无法工作,并指定其失败方式(抛出错误、在WMI搜索查询中找不到对象等)