当网络驱动器 (net use
) 物理上已断开连接,Windows 资源管理器(和其他程序)将继续尝试枚举和/或使用它,可能需要 60 秒。
有没有什么办法可以将这个超时时间减少到大约 5 秒?
只是为了澄清一下,我并不是在问 Windows 在一段时间后自动断开的网络驱动器,也不是在问登录期间的自动重新连接。
问题是关于这个的:
将网络驱动器连接到另一台计算机。然后关闭该计算机。然后尝试重新连接网络驱动器,例如在 Windows 资源管理器中双击 → 超时时间非常长。如何减少此超时时间?
答案1
在 Windows 7 和 Vista 中,映射的网络驱动器会在一段时间后自动断开连接,并在驱动器图标上显示红色十字。您仍然可以单击驱动器并查看/使用内容,但需要网络驱动器的应用程序会将其视为已断开连接,并且看不到文件。如果您尝试断开驱动器,它仍会显示“已断开网络驱动器” - 唯一的解决方案是重新启动。这是因为非活动网络连接有默认的断开时间。要更正此问题并关闭自动断开连接,请执行以下操作:
以管理员身份打开命令提示符。为此,请执行以下操作之一:
转到“开始”→“所有程序”→“附件”,右键单击“命令提示符”,然后选择“以管理员身份启动”,或者
类型命令在搜索框中按Ctrl++ShiftEnter
在命令提示符中,键入以下内容:
net config server /autodisconnect:-1
按Enter
重启计算机
您的映射网络驱动器现在应该保持连接 - 这是一个永久性的修复。
答案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