如何设置物理断开的映射驱动器的 Windows 网络超时?

如何设置物理断开的映射驱动器的 Windows 网络超时?

当网络驱动器 (net use) 物理上已断开连接,Windows 资源管理器(和其他程序)将继续尝试枚举和/或使用它,可能需要 60 秒。

有没有什么办法可以将这个超时时间减少到大约 5 秒?

只是为了澄清一下,我并不是在问 Windows 在一段时间后自动断开的网络驱动器,也不是在问登录期间的自动重新连接。

问题是关于这个的:

将网络驱动器连接到另一台计算机。然后关闭该计算机。然后尝试重新连接网络驱动器,例如在 Windows 资源管理器中双击 → 超时时间非常长。如何减少此超时时间?

答案1

在 Windows 7 和 Vista 中,映射的网络驱动器会在一段时间后自动断开连接,并在驱动器图标上显示红色十字。您仍然可以单击驱动器并查看/使用内容,但需要网络驱动器的应用程序会将其视为已断开连接,并且看不到文件。如果您尝试断开驱动器,它仍会显示“已断开网络驱动器” - 唯一的解决方案是重新启动。这是因为非活动网络连接有默认的断开时间。要更正此问题并关闭自动断开连接,请执行以下操作:

  1. 以管理员身份打开命令提示符。为此,请执行以下操作之一:

    • 转到“开始”→“所有程序”→“附件”,右键单击“命令提示符”,然后选择“以管理员身份启动”,或者

    • 类型命令在搜索框中按Ctrl++ShiftEnter

  2. 在命令提示符中,键入以下内容:

    net config server /autodisconnect:-1
    
  3. Enter

  4. 重启计算机

您的映射网络驱动器现在应该保持连接 - 这是一个永久性的修复。

答案2

我遇到了同样的问题,但最初只有大约 30 秒。但当它跳到大约 2 分钟时(出于某种未知原因),它变得非常烦人,我不得不想办法解决它。

我已经创建了批处理脚本,通过查看它是否可以 ping 目标机器来测试网络,如果可以,它会映射驱动器(如果未映射),否则,它会删除映射。

@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

然后,该脚本由计划任务调用,该任务每 10 分钟运行一次脚本,最大任务时间为 10 分钟。虽然控制台窗口在此期间保持打开状态,但我目前正在调查Network Conditions调度程序设置中的问题,可以将其设置为在连接到我知道共享所在的网络时创建共享(这将设置一个标志),第二个脚本每 5 分钟左右运行一次,如果标志至少比预期时间长,它将删除共享,从而最大限度地缩短控制台窗口时间。

答案3

这在 Windows 7 上对我而言如预期般有效。它还解决了登录后长时间等待的问题。粘贴在此处作为 .reg 文件:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider]
"RestoreConnection"=dword:00000000
"RestoreTimeout"=dword:00000004
"DeferConnection"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters]
"SessTimeout"=dword:0000000a
"ExtendedSessTimeout"=dword:00000000
"ReconnectTimeout"=dword:00000004

答案4

您的解决方案如下;

在登录时终止长时间的“恢复网络连接”(延迟=幻影连接)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider]

"RestoreConnection"=dword:00000001 ;(0=no attempt, you must click it)

"RestoreTimeout"=dword:00000005

如果未在规定时间内响应,则关闭连接RestoreTimeout

"DeferConnection"=dword:00000001

相关内容