我的家庭网络上有一台 QNAP 服务器,我使用 NFS 在 Windows-7x64 中映射了几个文件夹。除了我关闭服务器(或将其与网络断开连接)时,这工作正常。当服务器不可用时,Windows 启动正常,直到您输入密码并按下回车键后,此时它会停留在 KSOD 上,似乎什么也不做。
基于这个问题我进入安全模式,‘断开’了映射驱动器,现在我回到了正常模式,与以前完全一样。
我想知道的是,当服务器不可用时,如何保持驱动器映射,同时仍能启动 Windows?或者,如果做不到这一点,最好的查找地点在哪里?
答案1
它可能会完成启动到桌面,只是需要一段时间,因为您正在等待每个映射驱动器的超时期限过去,然后 Explorer 才能完成加载。
这篇 Ask Leo 博客文章有很多有用的信息:为什么 Windows 资源管理器有时需要很长时间才能显示?
您可能想要编写一个批处理文件来映射您想要的驱动器,但要确保它们没有设置为“持久”映射,这样它们就会在注销时被终止。然后在下次启动时,Explorer 应该会快速加载(无映射),如果您想要驱动器,您只需运行批处理文件来映射它们(设置批处理的桌面快捷方式)。
也许可以使用 Windows 的任务计划程序让映射批处理每次运行,但延迟到登录后 30 秒到 1 分钟,这样就不会减慢 Explorer 的加载时间。
您可能还可以设置一个任务来运行包含net * /del
或类似的批处理,以确保所有映射在注销时被终止,包括作为持久创建的映射。
评论问题后编辑/更多信息:
"Is that timeout duration value easily editable or buried?"
似乎没有一个地方可以真正定义它。查看https://support.microsoft.com/en-gb/topic/the-welcome-screen-may-be-displayed-for-30-seconds-during-the-logon-process-after-you-set-a-solid-color-as-the-desktop-background-in-windows-7-or-in-windows-server-2008-r2-b4565ced-703a-cc85-bf9c-6b3d586d6421寻找可能的解决方法(我不认为这会对你的情况有帮助,但是尝试一下也无妨)。
有关批处理的更多信息:
如果您最终创建了一个批处理文件来映射驱动器,并且不想通过任务计划程序延迟它,那么您可以在尝试映射之前使用 Ping 来测试连接。Ping 可以设置为使用特定的超时,因此您可以将其设置为较低,如果 ping 失败,则不要映射。
批处理文件中有类似这样的内容:
ping 10.3.3.3 -n 1 -w 500 | find "Reply"
if errorlevel 1 echo Machine Not Found && goto :eof
net use Q: \\10.3.3.3\Share
这将对 10.3.3.3 执行一次 ping 操作 (-n),并将超时 (-w) 设置为 500 毫秒。然后,它将尝试在结果中查找“Reply”。如果找不到该操作(由于机器不存在,因此没有回复),则它会回显未找到该操作并跳转到文件末尾。否则,如果找到“Reply”,它将尝试将 Q: 映射到 10.3.3.3 上的共享“Share”。
答案2
对我来说,这是有效的:
;### kill the long "restoring network connections" at logon (defer=ghosted connections)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider]
"RestoreConnection"=dword:00000001 ;(0=no attempt, you must click it)
"RestoreTimeout"=dword:00000005
;### Ghost the connection if not responding within RestoreTimeout
"DeferConnection"=dword:00000001
;### network drive map timeout in Explorer if connection is lost (def is 60 sec)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters]
"ReconnectTimeout"=dword:00000005
但我将其设置RestoreConnection
为 0,因为我不需要驱动器一直处于就绪状态。然后黑屏超时就消失了。
来源:http://www.sevenforums.com/network-sharing/274680-timeout-mapping-network-drives-windows-login.html