Файл thumbs.db и проблема с удалением сетевых папок

Читатель обнаружил одну интересную особенность работы проводника Explorer в Windows 7 с сетевыми каталогами на файловом сервере. Проблема заключалась в том, что сразу после копирования/ перемещения каталога в сетевой папке, система отказывалась удалять или переименовывать его. Переименовать/удалить такой каталог можно только через некоторое время (1-5 минут).

При попытке удалить такой сетевой каталог появляется ошибка:

The action can’t be completed because the folder or a file in it is open in another program. Close the file or folder and try again.
Папка уже используется.
Операция не может быть завершена, поскольку эти папка или файл открыты в другой программе. Закройте папку или файл и повторите попытку.

thumbs.db Операция не может быть завершена, поскольку эти папка или файл открыты в другой программеКак оказалась загвоздка была связана с наличием файла Thumbs.db  —  файла с эскизами изображений. Операционная система Windows еще со времен Windows XP может создавать кэш с эскизами изображений (и других типов файлов) и хранить его в скрытом файле Thumbs.db каждого каталога. За счет использования кэша достигается сокращение времени на загрузку и отображение файлов эскизов в Проводнике. При отключенном кэше изображений , системе приходится каждый раз загружать файлы изображений и генерировать для них миниатюры, что затратно по ресурсам (особенно для папок с большим количеством изображений).

Но как, оказалось есть ситуации (KB2025703  — Renaming a network folder in Windows 7 Explorer fails with «the action can’t be completed…»), когда наличие файла thumbs.db с кэшем миниатюр мешает удалению или переименования каталогов из Проводника Windows.

Судя по всему системе требуется некоторое время на генерацию файла с кэшем миниатюр, в результате пока этот файл генерируется или обновляется, сделать что то с его родительским каталогом нельзя, пока не будет снята блокировка на запись с файла кэша.

В этом случае можно отключить автоматическую генерацию файла thumbs.db. на сетевых папках и дисках.

Отключаем создание файла Thumbs.db в сетевых папках с помощью GPO

Чтобы Windows Explorer при просмотре каталогов не создавал скрытый файл с кэшем эскизов изображений Thumbs.db, можно воспользоваться параметрами групповых политик.

Интересующие нас политики находятся в разделе редактора GPO:

  • В Windows 7 (Vista ) нужные политики находятся в разделе — User Configuration -> Administrative Templates -> Windows Components -> Windows Explorer.
  • В Windows 8 / Windows 10 – User Configuration -> Administrative Templates -> Windows Components -> File Explorer

Найдите и включите (переведите в Enable) следующие политики:

  • Turn off the display of thumbnails and only display icons on network folders
  • Turn off caching of thumbnails in hidden thumbs.db files
  • Turn off the display of thumbnails and only display icons

В первую очередь нас интересует 1 политика, которая запрещает Проводнику создавать thumbs.db в сетевых каталогах.

• Turn off the display of thumbnails and only display icons on network foldersОсталось назначить политику на пользователей и обновить ее на компьютерах (gpupdate /force)

Отключение создания Thumbs.db в сетевых папках через реестр

На домашних редакциях  Windows, в которых отсутствует редактор групповой политики, отключить создание скрытых файлов thumbs.db можно через редактор реестра (regedit.exe).

Для этого в разделе HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\ создать подраздел Explorer (в Windows 7 он уже имеется), в котором создать ключ типа REG_DWORD  с именем DisableThumbsDBOnNetworkFolders и значением 1

DisableThumbsDBOnNetworkFolders Эту же операцию можно выполнить одной командой:

reg add "HKCU\SOFTWARE\Policies\Microsoft\Windows\Explorer" /v DisableThumbsDBOnNetworkFolders /d 0x1 /t REG_DWORD /f

Как удалить файлы Thumbs.db во всех каталогах

Существующие файлы Thumbs.db не удаляются автоматически после включения политики. Можно рекурсивно удалить все файлы Thumbs.db на определенном диске или в каталоге сервера с помощью PowerShell.

Перейдем в нужный каталог:

cd c:\share
Получим список всех  Thumbs.db
Get-ChildItem -Path . -Include Thumbs.db -Recurse -Name -Force | Remove-Item –Force –WhatIF
powershell рекурсивно удалить файл Thumbs.db
Удалим найденные файлы
Get-ChildItem -Path . -Include Thumbs.db -Recurse -Name -Force | Remove-Item –Force


Предыдущая статья Следующая статья


Комментариев: 12 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)