2009-08-12 13 views
9

Utilizzo il metodo EnableDHCP della classe WMI Win32_NetworkAdapterConfiguration per abilitare il servizio DHCP su una scheda di rete. Sto usando XP Embedded con SP2 ma succede anche sul mio desktop (XP SP3).Errore WMI EnableDHCP su adattatore disconnesso

Tutto funziona alla grande tranne quando il cavo di rete è scollegato.

Se il cavo è disconnesso, EnableDHCP restituisce 94 (percorso, file o oggetto non trovato) e quando si guardano nelle proprietà del pannello di controllo della rete, è impostato su configurazione manuale con indirizzo 0.0.0.0 e maschera 255.0.0.0 .

Curiosamente, quando in questo stato, EnableStatic ha esito negativo con il codice 94 o 81 (Impossibile configurare il servizio DHCP) la prima volta ma poi funziona la seconda volta.

Abilitare DHCP funziona correttamente utilizzando netsh o la GUI di Windows anche con il cavo scollegato.

Qualcuno sa come risolvere questo problema?

risposta

6

Sembra almeno un'altra persona è interessata quindi ecco cosa ho trovato:

Per quanto posso dire che è un bug in WMI. Per aggirare il problema, ciò che sembra funzionare è impostare direttamente i valori di registro appropriati per l'adattatore. Questi sono memorizzati nel Registro di

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

GUID è contenuto nella struttura IP_ADAPTER_INFO compilato da GetAdaptersInfo.

Impostare il valore DWORD EnableDHCP a 1.

Ho anche trovato utile per cancellare i gateway utilizzando SetGateways WMI altrimenti la vecchia porta d'ingresso (s) appendere intorno.

Ho anche scoperto che quando EnableStatic dice che non funziona, funziona davvero.

Questa roba è rilevante solo quando la rete è scollegata.

+0

Puoi dirmi come "imposta i valori di registro appropriati per l'adattatore, che sono memorizzati nel registro sotto ...." –