Пользователи часто сталкиваются с проблемой, когда файлы в сетевых папках Windows открываются или сохраняются с задержкой. При доступе к папке по UNC-пути (например, \\srv1\share) или через подключённый сетевой диск в Проводнике Windows содержимое отображается через 10–60 секунд. Новые файлы появляются в папке с задержкой в 3–4 минуты, даже при обновлении списка клавишей F5. Однако прямое обращение к файлу по UNC-пути (например, \\srv1\share\file1.txt) работает без задержек, хотя файл не виден в папке.
Эта проблема связана с механизмом Network Redirector в Windows, который использует протокол SMB (Server Message Block) для доступа к сетевым ресурсам. Начиная с версии SMBv2, применяется кэширование метаданных, что снижает сетевой трафик, но может вызывать задержки при обновлении содержимого папок, особенно с большим количеством файлов. В статье рассмотрены способы устранения проблемы, включая отключение кэширования, настройку GPO и проверку сетевых параметров.
Решение 1: Отключение кэширования на сервере
Кэширование SMB на стороне сервера можно отключить в настройках общей папки, чтобы устранить задержки при отображении файлов.
1. На сервере откройте свойства сетевой папки в Проводнике Windows.
2. Перейдите на вкладку Доступ (Sharing) и нажмите Расширенная настройка (Advanced Sharing).
3. В разделе Кэширование (Caching) выберите Файлы и программы в этой папке недоступны вне сети (No files or programs from the shared folder are available offline).
4. Примените изменения и перезапустите доступ к папке на клиентских компьютерах.
Альтернативно, используйте PowerShell для отключения кэширования:
Set-SMBShare -Name ShareName -CachingMode None
Замените ShareName на имя вашей общей папки.
Это отключит как кэширование, так и автономный доступ к папке, что может увеличить сетевой трафик, но устранит задержки.
Решение 2: Отключение кэширования на стороне клиента
На клиентских компьютерах можно отключить кэширование SMB через реестр, чтобы содержимое сетевых папок обновлялось без задержек.
1. Откройте Редактор реестра (regedit.exe).
2. Перейдите в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters.
3. Создайте или измените три параметра типа DWORD:
— DirectoryCacheLifetime = 0 (отключает кэш метаданных папки).
— FileInfoCacheLifetime = 0 (отключает кэш информации о файлах).
— FileNotFoundCacheLifetime = 0 (отключает кэш ответа «Файл не найден»).
4. Или выполните команды в PowerShell:
$regpath = "HKLM:\System\CurrentControlSet\Services\LanmanWorkstation\Parameters"
New-ItemProperty -Path $regpath -Name DirectoryCacheLifetime -Value 0 -PropertyType DWORD -Force
New-ItemProperty -Path $regpath -Name FileInfoCacheLifetime -Value 0 -PropertyType DWORD -Force
New-ItemProperty -Path $regpath -Name FileNotFoundCacheLifetime -Value 0 -PropertyType DWORD -Force
5. Перезагрузите компьютер для применения изменений.
Для массового применения на нескольких компьютерах настройте эти параметры через групповую политику (GPO):
— В Редакторе доменных GPO (gpmc.msc) создайте политику.
— Перейдите в Конфигурация компьютера -> Политики -> Административные шаблоны -> Система -> Реестр (Computer Configuration -> Policies -> Administrative Templates -> System -> Registry).
— Настройте распространение указанных параметров реестра.
Альтернативно, используйте команду PowerShell для настройки SMB-клиента:
Set-SmbClientConfiguration -DirectoryCacheLifetime 0
Set-SmbClientConfiguration -FileInfoCacheLifetime 0
Set-SmbClientConfiguration -FileNotFoundCacheLifetime 0
6. Проверьте текущие настройки кэширования:
Get-SmbClientConfiguration | Select *cache*
После отключения кэширования содержимое сетевых папок будет обновляться мгновенно, но это увеличит нагрузку на сеть и сервер.
Решение 3: Проверка других причин задержек
Если отключение кэширования не помогло, проверьте дополнительные факторы, влияющие на производительность сетевых папок:
1. Включённый Access-Based Enumeration (ABE):
— Опция Перечисление на основе доступа (Access-Based Enumeration) скрывает файлы и папки, к которым у пользователя нет прав NTFS. Это может замедлить отображение содержимого в папках с большим количеством объектов.
— Отключите ABE в свойствах папки:
— На сервере откройте Диспетчер сервера (servermanager.exe).
— Перейдите в Роли -> Файловые службы -> Управление общими папками (Roles -> File Services -> Share and Storage Management).
— Выберите папку, щёлкните Свойства и отключите Включить перечисление на основе доступа.
Кроме того, вы можете выключить ABE на компьютерах домена AD с помощью групповых политик. Для этого используется GPP в секции: Computer Configuration -> Preferences -> Windows Settings -> Network Shares).
2. Низкая производительность сети на виртуальных машинах:
— На серверах Windows Server 2019 с Hyper-V может наблюдаться снижение скорости сети по сравнению с Windows Server 2016/2012 R2.
— Проверьте настройки сетевого адаптера виртуальной машины и обновите драйверы VM Network Adapter.
— Убедитесь, что используется последняя версия Hyper-V Integration Services.
3. Протокол NetBIOS:
— Отключите NetBIOS через TCP/IP на клиентских компьютерах:
— Откройте Сетевые подключения (ncpa.cpl).
— Выберите активное подключение, щёлкните Свойства.
— В разделе Протокол Интернета версии 4 (TCP/IPv4) нажмите Свойства -> Дополнительно -> WINS и выберите Отключить NetBIOS через TCP/IP.
4. Сброс сетевых настроек:
— Выполните сброс стека TCP/IP и сетевых настроек на клиентском компьютере:
— В Параметрах Windows перейдите в Сеть и Интернет -> Сброс сети (Network Reset).
— Или используйте команду:
netsh int ip reset
— Перезагрузите компьютер после сброса.
Дополнительные рекомендации
— Проверьте производительность сети с помощью утилит, таких как iPerf или PingPlotter, для выявления узких мест.
— Убедитесь, что на сервере и клиентах установлены последние обновления Windows через Центр обновления Windows.
— Проверьте настройки антивируса или брандмауэра, которые могут блокировать SMB-трафик (порты 445 и 137–139).
— Если папка содержит тысячи файлов, рассмотрите разделение её на несколько подпапок для снижения нагрузки.
— Используйте Диспетчер задач или Монитор ресурсов для анализа нагрузки на сетевой адаптер и дисковую подсистему сервера.
Эти методы устранят задержки при открытии файлов в сетевых папках Windows и обеспечат быструю работу с общими ресурсами.