25

Когда сетевой диск (net use) физически отключен, Windows Explorer (и другие программы) продолжают пытаться перечислить и / или использовать его, возможно, в течение 60 секунд.

Есть ли способ уменьшить это время до 5 секунд?

Просто чтобы уточнить, я не спрашиваю о сетевых дисках, которые Windows автоматически отключается через определенный период времени, или об автоматических переподключениях во время входа в систему.

Вопрос по этому поводу:

Подключите сетевой диск к другому компьютеру. Затем выключите другой компьютер. Затем попробуйте снова подключить сетевой диск, например, дважды щелкнув в проводнике Windows → очень длительное время ожидания. Как мне уменьшить этот тайм-аут?

6 ответов6

5

В Windows 7 и Vista подключенные сетевые диски через некоторое время отключатся и отобразят красный значок на значке диска. Вы по-прежнему сможете щелкнуть диск и просмотреть / использовать его содержимое, но приложения, которым требуется сетевой диск, увидят их как отключенные и не увидят файлы. Если вы попытаетесь отключить диск, он все равно будет сидеть и говорить «Отключен сетевой диск» - единственное решение - перезагрузка. Это связано с тем, что для неактивных сетевых подключений установлено время отключения по умолчанию. Чтобы исправить это и отключить автоматическое отключение, выполните следующие действия:

  1. Откройте командную строку от имени администратора. Для этого либо:

    • перейдите в Пуск → Все программы → Стандартные, щелкните правой кнопкой мыши "Командная строка" и выберите "Запуск от имени администратора", или

    • введите cmd в поле поиска и нажмите Ctrl+Shift+Enter

  2. В командной строке введите следующее:

    net config server /autodisconnect:-1
    
  3. Нажмите Enter

  4. Перезагрузить компьютер

Теперь подключенные сетевые диски должны оставаться на связи - это постоянное исправление.

2

У меня была такая же проблема, но изначально это было только около 30 секунд. Но когда он подскочил до 2 минут (по неизвестной причине), он стал настолько раздражающим, что мне пришлось искать способ его решить.

Я создал пакетный сценарий, который проверяет сеть, проверяя, может ли он пропинговать целевой компьютер, если это возможно, он сопоставляет диски (если не сопоставлен), в противном случае он удаляет сопоставление.

@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 минут или около того, который, если флаг был старше, по крайней мере, сколь угодно длинного, удалял бы общие ресурсы, минимизируя время окна консоли.

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

Основанный на 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)

Также упоминается, что это значение уменьшено до 20 с в Windows 8 SMB 3.0 для быстрого переключения при сбое.

0

Согласно этому сообщению на Windows7Hacker, исправление этой проблемы на стороне клиента включает редактирование реестра.

  1. Откройте реестр с помощью Regedit.exe
  2. Перейдите к HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
  3. Создайте значение DWORD с именем KeepConn и установите его в секундах, чтобы поддерживать соединение

Например, я установил его на 86400 (один день).

0

Это работало для меня на 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .