JSI Tip 8517. When you use the FQDN to reference a remote computer from a Windows Server 2003 domain controller, you receive 'System error 67 has occurred' or 'No network provider accepted the given network path'?

Jerold Schulman

September 27, 2004

2 Min Read
ITPro Today logo in a gray background | ITPro Today

If you issue a net use to a shared resource of a remote computer, using it's FQDN (Fully Qualified Domain Name), you may receive:

System error 67 has occurred
The network name cannot be found

If you use the Open box of the Start / Run dialog, to access a remote shared resource using it's FQDN, you receive:

No network provider accepted the given network path

NOTE: You may be able to ping the remote computer by using it's FQDN.

This behavior is likely the result of contention for the NetBT user mode DNS resolver, which can only process request serially, causing a time out in about 8 seconds.

To resolve this problem, I have scripted W2K3LmhostsTimeout.bat.

The syntax for using W2K3LmhostsTimeout.bat is:

W2K3LmhostsTimeout Seconds [W2K3DC1 W2K3DC2 ... W2K3DCn]

where Seconds is the number of seconds before NetBT times out and each optional W2KDCx is the NetBIOS computer name of a Windows Server 2003 domain controller. If no W2KDCx parameters are specified, the local computer is updated.

NOTE: W2K3LmhostsTimeout.bat uses REG.EXE, which is built into Windows Server 2003 and Windows XP.

NOTE: W2K3LmhostsTimeout.bat configures the LmhostsTimeout Value Name, a REG_DWORD data type, at HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBTParameters. This data value is expressed in milliseconds, so the script converts the Seconds to milliseconds. The timer has a granularity of Seconds, so the actual time out could be 2 times Seconds.

W2K3LmhostsTimeout.bat contains:

@echo offsetlocalif {%1}
<h1><a name="_goto_Syntax_set_a_seconds_10000_1_10000_set_a_seconds_seconds_1000_set_a_cnt_0_DCloop_if_2_" id="_goto_Syntax_set_a_seconds_10000_1_10000_set_a_seconds_seconds_1000_set_a_cnt_0_DCloop_if_2_">{} goto Syntaxset /a seconds=10000%1%%10000set /a seconds=%seconds% * 1000set /a cnt=0:DCloopif {%2}</a></h1>
{} goto doitset /a cnt=%cnt% + 1set work=%2shiftset work=%work:=%set work=%work:"=%call set DC%cnt%=\%work%goto DCloop:doitset /a num=1if %cnt% EQU 0 set key=HKLMSYSTEMCurrentControlSetServicesNetBTParameters&goto doitloop1:doitloopif %num% GTR %cnt% goto finishcall set key=%%DC%num%%%HKLMSYSTEMCurrentControlSetServicesNetBTParametersset /a num=%num% + 1:doitloop1@echo reg add %key% /v LmhostsTimeout /T REG_DWORD /d %seconds% /Freg add %key% /v LmhostsTimeout /T REG_DWORD /d %seconds% /[email protected] doitloop:Finishendlocalgoto :EOF:Syntax@echo Syntax: W2K3LmhostsTimeout Seconds [W2K3DC1 W2K3DC2 ... W2K3DCn]endlocal

NOTE: The LmhostsTimeout setting will NOT become effective until the server is restarted.



Sign up for the ITPro Today newsletter
Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.

You May Also Like