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


28

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

有什么方法可以将此超时减少到5秒吗?

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

问题是这样的:

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


2
您可能正在寻找:superuser.com/a/332754/124651
deppfx 2012年

@Ƭᴇcʜιᴇ007感谢您的赏金。但是我认为人们仍然误会了。我试图重新表述这个问题,以使其更清楚。
安德烈亚斯·哈弗堡

1
@AndreasHaferburg没问题,如果您有时间测试一些新答案,那将很方便。:)
Ƭᴇcʜιᴇ007

答案中建议的所有注册表更改似乎都无济于事。我怀疑我们要减少的超时实际上不是SMB超时,而是更通用的TCP / IP超时(或其中几种的组合)。
mivk

Answers:


6

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

  1. 以管理员身份打开命令提示符。为此,可以:

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

    • 在搜索框中输入cmd,然后按Ctrl+ Shift+Enter

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

    net config server /autodisconnect:-1
    
  3. Enter

  4. 重新启动电脑

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


4
这无法回答OP的实际问题,原始请求被误解了,请参阅OP的编辑。
Ƭᴇcʜιᴇ007

我知道它与OP无关,但这正是我在寻找的东西,但是访问被拒绝。我是PC上的管理员。
瑞克

3

基于http://blogs.msdn.com/b/openspecification/archive/2013/03/27/smb-2-x-and-smb-3-0-timeouts-in-windows.aspx,类似于Windows共享超时由“请求过期计时器”注册表项控制。

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

它还提到在Windows 8 SMB 3.0中此值减小到20s以进行快速故障转移。


3
不幸的是,我的测试表明,此设置对等待网络驱动器不可用所涉及的超时没有影响。我将其设置为5秒,但我仍在等待与设置(然后重新启动)之前相同的〜30秒(Windows 7)。
Ƭᴇcʜιᴇ007

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分钟运行一次,如果该标志的存在时间至少长于该标志的时间,则它将删除共享,从而最大程度地减少了控制台窗口的时间。


4
不幸的是,我认为这种解决方案与我们预期的一样好(仍然是2014年),至少在涉及由网络驱动器引起的登录/资源管理器启动延迟方面。有我的赏金。也许我们可以在几年后再次进行审查。:)
Ƭᴇcʜιᴇ007

sleep您的脚本中的命令不是本机命令。在这种情况下,最好使用vbscript。
Azevedo

@Ƭᴇcʜιᴇ007您是否找到了解决此问题的真正方法?我有一个网络驱动器,该网络驱动器通常已断电,尝试从客户端计算机访问它会导致令人沮丧的延迟。
WackGet

1

您的解决方案如下;

在登录时终止长时间的“恢复网络连接”(defer = ghosted连接)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider]

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

"RestoreTimeout"=dword:00000005

如果没有响应,则对连接进行重影 RestoreTimeout

"DeferConnection"=dword:00000001

1
您从何处获得此信息的任何来源,或暗示为什么可能有帮助的来源?
Ƭᴇcʜιᴇ007

2
不幸的是,我的测试表明,此设置对等待网络驱动器不可用所涉及的超时没有影响。我创建了上述键并设置了它们的值,但我仍在等待(设置并重新启动)之前大约30秒(Windows 7)。
Ƭᴇcʜιᴇ007

1
还有:[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ LanmanWorkstation \ Parameters]“ ReconnectTimeout” = dword:00000005在这里找到:sevenforums.com/network-sharing/… 将该条目加上以上所有条目设置为1似乎会使巨大的差异(重新启动后)。现在一切都再次如期进行。
kermit

1

这按预期在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

这不适用于8.1
midenok '18

0

根据Windows7Hacker上的这篇文章,在客户端解决此问题涉及注册表编辑。

  1. 使用Regedit.exe打开注册表
  2. 纳维亚盖特到 HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
  3. 创建一个名为的DWORDKeepConn并将其设置为以秒为单位的时间,以保持连接有效

例如,我将其设置为86400(一天)。


虽然从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
Ivo Flipse 2012年

另外,作为一般提醒:尝试使您的答案比句子长,并请添加一些上下文。解释链接实际上是如何回答问题的-可能不是那么明显。
slhck

@IvoFlipse:好的。感谢您的建议。
deppfx 2012年

@slhck:请牢记这一点。
deppfx 2012年

1
这无法回答OP的实际问题,原始请求被误解了,请参阅OP的编辑。
Ƭᴇcʜιᴇ007
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.