2009-08-12 88 views
9

我正在使用WMI Win32_NetworkAdapterConfiguration类EnableDHCP方法在网络适配器上启用DHCP服务。我正在使用XP Embedded SP2,但它也发生在我的桌面(XP SP3)上。WMI EnableDHCP在断开连接的适配器上失败

除非拔下网线,否则一切都很好。

如果电缆断开,EnableDHCP返回94(路径,文件或对象未找到),并且当我查看网络控制面板属性时,它将设置为手动配置,地址为0.0.0.0,掩码为255.0.0.0 。

奇怪的是,处于此状态时,EnableStatic第一次失败,代码为94或81(无法配置DHCP服务),但第二次运行。

即使拔下电缆,启用DHCP仍能正常使用netsh或windows GUI。

任何人都知道如何解决这个问题?

回答

6

看来至少一个其他人感兴趣,所以这里是我的发现:

至于我可以告诉它的WMI中的错误。为了解决它,似乎工作的是直接为适配器设置适当的注册表值。这些被存储在注册表下

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<guid> 

的GUID包含在由GetAdaptersInfo填充在IP_ADAPTER_INFO结构。

设置EnableDHCP时DWORD值设置为1

我还发现有用清除使用WMI SetGateways否则旧的网关(S)流连的网关。

我还发现,当EnableStatic说失败时,它实际上工作。

这个东西只有在网络断开时才有意义。

+0

你能告诉我我是多么兴奋地“为适配器设置适当的注册表值,它们存储在注册表中....” – 2013-11-18 21:00:48