How do I set the Windows network timeout for physically disconnected mapped drive?

When a network drive (net use) is physically disconnected, Windows Explorer (and other programs) keeps trying to enumerate and/or use it for maybe 60 seconds.

Is there some way to reduce this timeout to maybe 5 seconds?

Just to clarify, I'm not asking about network drives that are automatically disconnected by Windows after a certain period of time, or about automatic reconnections during login.

The question is about this:

Connect a network drive to another computer. Then turn that other computer off. Then try to reconnect the network drive, e.g. by double-clicking in Windows Explorer → very long timeout. How do I reduce this timeout?


Solution 1:

In Windows 7 and Vista mapped network drives will disconnect themselves after a time and show a red cross on the drive icon. You will still be able to click on the drive and see/use the contents but applications that require a network drive will see them as disconnected and will not see files. If you try to disconnect the drive, it will still sit there saying 'Disconnected Network Drive' - the only solution is to reboot. This is because there is a default disconnect time for inactive network connections. To correct this and turn the autodisconnect off do the following:

  1. Open the command prompt as Administrator. To do this, either:

    • go to Start → All Programs → Accessories, right-click "Command Prompt" and select "Start as Administrator", or

    • type cmd into the search box and press Ctrl+Shift+Enter

  2. In the command prompty, type the following:

    net config server /autodisconnect:-1
    
  3. Press Enter

  4. Reboot computer

Your mapped network drives should now stay connected - this is a permanent fix.

Solution 2:

Based on http://blogs.msdn.com/b/openspecification/archive/2013/03/27/smb-2-x-and-smb-3-0-timeouts-in-windows.aspx, look like the Windows share timeout is control by "Request Expiration Timer" registry entry.

\HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\
Value type: Dword  
Value name: SessTimeout
Default:    60 seconds (Windows Vista)

It also mentioned this value reduced to 20s in Windows 8 SMB 3.0 for quick failover.

Solution 3:

I was having the same problem, but initially it was only around 30 seconds. But when it jumped to around 2 minutes (for some unknown reason), it got so annoying, I had to find a way to solve it.

I have created batch script which tests the network by seeing if it can ping the target machine, if it can, it maps the drives (if unmapped), otherwise, it deletes the mapping.

@echo off

set ipaddr=192.168.5.3

set current=neither

:begin

    set state=down

    for /f %%i in ('ping -n 1 %ipaddr% -w 1000 ^| findstr /C:"Received = 1"') do (
        set state=up
    )

    if not %state% == %current% (
        set current=%state%
        if %state% == up (
            net use R: \\%ipaddr%\archive$
        )
        if %state% == down (
            net use R: /delete /y
        )
    )

    sleep 5

goto begin

That script is then called by a scheduled task, which runs the script every 10 minutes, with a maximum task time of 10 minutes. Although the console window then remains open during this time, I am currently investigating the Network Conditions for this in the scheduler settings, which could be set to create the shares when connected to the network I know the share is on (which would set a flag), and a second script, which would run once ever 5 minutes or so, which if the flag was older than at least however long, it would delete the shares, minimizing console window time.