Читач виявив одну цікаву особливість роботи провідника Explorer в Windows 7 з мережевими каталогами на файловому сервері. Проблема полягала в тому, що відразу після копіювання / переміщення каталогу в мережевій теці, система відмовлялася видаляти або перейменовувати його. Перейменувати / видалити такий каталог можна тільки через деякий час (1-5 хвилин).
При спробі видалити такий мережевий каталог з'являється помилка:
The action can not 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 - файлу з ескізами зображень. Операційна система Windows ще з часів Windows XP може створювати кеш з ескізами зображень (і інших типів файлів) і зберігати його в прихованому файлі Thumbs.db кожного каталогу. За рахунок використання кешу досягається скорочення часу на завантаження і відображення файлів ескізів в Провіднику. При відключеному кеші зображень, системі доводиться кожен раз завантажувати файли зображень і генерувати для них мініатюри, що затратно по ресурсам (особливо для папок з великою кількістю зображень).
Але як, виявилося є ситуації (KB2025703 - Renaming a network folder in Windows 7 Explorer fails with «the action can not be completed ...»), коли наявність файлу thumbs.db з кешем мініатюр заважає видаленню або перейменування каталогів з Провідника Windows.
Судячи з усього системі потрібен якийсь час на генерацію файлу з кешем мініатюр, в результаті поки цей файл генерується або оновлюється, зробити що то з його батьківським каталогом можна, поки не буде знято блокування на запис з файлу кеша.
В цьому випадку можна відключити автоматичну генерацію файлу thumbs.db. на мережевих папках і дисках.
зміст:
- Відключаємо створення файлу Thumbs.db в мережевих папках за допомогою GPO
- Відключення створення Thumbs.db в мережевих папках через реєстр
- Як видалити файли 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 в мережевих каталогах.
Залишилося призначити політику на користувачів і оновити її на комп'ютерах (gpupdate / force)
Відключення створення Thumbs.db в мережевих папках через реєстр
На домашніх редакціях Windows, в яких відсутня редактор групової політики, відключити створення прихованих файлів thumbs.db можна через редактор реєстру (regedit.exe).
Для цього в розділі HKEY_CURRENT_USER \ Software \ Policies \ Microsoft \ Windows \ створити підрозділ Explorer (В Windows 7 він вже є), в якому створити ключ типу REG_DWORD з ім'ям DisableThumbsDBOnNetworkFolders і значенням 1
Цю ж операцію можна виконати однією командою:
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.dbGet-ChildItem -Path. -Include Thumbs.db -Recurse -Name -Force | Remove-Item -Force -WhatIF
Видалимо знайдені файлиGet-ChildItem -Path. -Include Thumbs.db -Recurse -Name -Force | Remove-Item -Force