Как установить время ожидания сети Windows для физически отключенного подключенного диска?

28

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

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

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

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

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

Андреас Хефербург
источник
2
Возможно, вы ищете это: superuser.com/a/332754/124651
deppfx
@ Ƭᴇcʜιᴇ007 Спасибо за щедрость. Но я думаю, что люди все еще не понимают. Я попытался перефразировать вопрос еще раз, чтобы прояснить его.
Андреас Хефербург
1
@ AndreasHaferburg Нет проблем, если у вас есть время, чтобы проверить некоторые из новых ответов, это было бы удобно. :)
Ƭᴇcʜιᴇ007
Ни одно из изменений реестра, предложенных в ответах, кажется, не помогает. Я подозреваю, что тайм-аут, который мы хотели бы сократить, на самом деле не тайм-аут SMB, а более общий тайм-аут TCP / IP (или комбинация нескольких из них).
mivk

Ответы:

6

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

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

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

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

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

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

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

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

Кришна
источник
4
Это не отвечает на фактический вопрос ОП, исходный запрос был неправильно понят, см. Редактирование ОП.
Ƭᴇcʜιᴇ007
Я знаю, что это не связано с OP, но это именно то, что я ищу, но доступ запрещен. Я администратор на моем ПК.
Рик
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)

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

Эрик Леунг
источник
3
К сожалению, мое тестирование показывает, что этот параметр не влияет на время ожидания, связанное с ожиданием недоступных сетевых дисков. Я установил его на 5 секунд, и я все еще жду те же ~ 30 секунд (Windows 7), которые были до установки (и перезагрузки).
Ƭᴇcʜιᴇ007
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 минут или около того, который, если флаг был старше, по крайней мере, сколь угодно длинного, удалял бы общие ресурсы, минимизируя время окна консоли.

topherg
источник
4
К сожалению, я думаю, что решение такого типа примерно так же хорошо, как мы можем ожидать (по-прежнему, начиная с 2014 года), по крайней мере, когда речь идет о задержках входа в систему / запуска Explorer, вызванных сетевыми дисками. Возьми мою награду. Возможно, мы сможем вернуться к нему через пару лет. :)
Ƭᴇcʜιᴇ007
sleepв вашем скрипте нет родной команды. Лучше использовать VBScript в этом случае.
Азеведо
@ Ƭᴇcʜιᴇ007 Вы когда-нибудь находили реальное решение этой проблемы? У меня есть сетевой диск, который часто физически отключен, и попытка получить к нему доступ с клиентского компьютера приводит к разочаровывающей задержке.
WackGet
1

Ваше решение ниже;

Убейте долгое "восстановление сетевых подключений" при входе в систему (defer = ghosted connections)

[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, делает огромная разница (после перезагрузки). Теперь все быстро, как и ожидалось снова.
кермит
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
0

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

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

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

deppfx
источник
Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
Иво Флипс
Кроме того, в качестве общего напоминания: попробуйте сделать ваши ответы длиннее, чем предложение, и добавьте некоторый контекст, пожалуйста. Объясните, как ссылка на самом деле отвечает на вопрос - это может быть не так очевидно.
slhck
@IvoFlipse: Конечно. Спасибо за предложение.
deppfx
@slhck: буду иметь это в виду.
deppfx
1
Это не отвечает на фактический вопрос ОП, исходный запрос был неправильно понят, см. Редактирование ОП.
Ƭᴇcʜιᴇ007