断开连接的适配器上的WMI EnableDHCP失败

mar*_*h44 10 windows wmi networking

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

除非拔下网线,否则一切都很顺利.

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

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

即使拔掉电缆,使用netsh或Windows GUI启用DHCP也能正常工作.

有谁知道如何解决这个问题?

mar*_*h44 6

似乎至少有一个人感兴趣,所以这里是我发现的:

据我所知,它是WMI中的一个错误.为了解决这个问题,似乎可以直接为适配器设置适当的注册表值.这些存储在注册表下

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<guid>
Run Code Online (Sandbox Code Playgroud)

guid包含在GetAdaptersInfo填充的IP_ADAPTER_INFO结构中.

将EnableDHCP DWORD值设置为1.

我还发现使用WMI SetGateways清除网关很有用,否则老网关就会出现问题.

我还发现,当EnableStatic说失败时,它确实有效.

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