Problém s odstraňováním souborů Thumbs.db a síťových složek

Čtečka objevila jednu zajímavou funkci Průzkumníka Explorer ve Windows 7 se síťovými adresáři na souborovém serveru. Problém byl v tom, že systém ihned po zkopírování / přesunutí adresáře do síťové složky odmítl odstranit nebo přejmenovat. Takový adresář můžete přejmenovat / smazat až po chvíli (1-5 minut).

Při pokusu o odstranění takového síťového adresáře se objeví chyba:

Tuto akci nelze dokončit, protože složka nebo soubor v ní je otevřen v jiném programu. Zavřete soubor nebo složku a akci opakujte..
Operaci nelze dokončit, protože tyto složky nebo soubory jsou otevřeny v jiném programu. Zavřete složku nebo soubor a akci opakujte..

Jak se ukázalo, úlovek byl spojen s přítomností souboru Palec nahoru.db  -  soubor s miniaturami obrázků. Od dob systému Windows XP může operační systém Windows vytvářet mezipaměť s miniaturami obrázků (a dalších typů souborů) a ukládat ji do skrytého souboru Thumbs.db každého adresáře. Použitím mezipaměti je dosaženo zkrácení času potřebného ke stažení a zobrazení miniaturních souborů v Průzkumníku. Při zakázané mezipaměti obrázků musí systém pokaždé stahovat obrazové soubory a generovat pro ně miniatury, což je náročné na zdroje (zejména pro složky s velkým počtem obrázků).

Ukázalo se však, že existují situace (KB2025703 - Přejmenování síťové složky v Průzkumníkovi Windows 7 selže při „akci nelze dokončit ...“), když přítomnost souboru thumbs.db s mezipamětí miniatur zabrání odebrání nebo přejmenování adresářů z Průzkumníka Windows.

Systém tedy zřejmě nějakou dobu vygeneruje soubor s miniaturou mezipaměti, v důsledku toho, zatímco je tento soubor vytvářen nebo aktualizován, nemůžete něco dělat s jeho nadřazeným adresářem, dokud nebude uvolněn zámek zápisu v souboru mezipaměti..

V takovém případě můžete zakázat automatické generování souboru thumbs.db. na síťových složkách a jednotkách.

Obsah:

  • Zakažte vytváření souboru Thumbs.db v síťových složkách pomocí GPO
  • Zakázání vytváření Thumbs.db v síťových složkách prostřednictvím registru
  • Jak odstranit soubory Thumbs.db ve všech adresářích

Zakažte vytváření souboru Thumbs.db v síťových složkách pomocí GPO

Chcete-li zabránit Průzkumníkovi Windows v procházení adresářů k vytvoření skrytého souboru s mezipamětí miniatur obrázků Thumbs.db, můžete použít nastavení zásad skupiny.

Zásady, které nás zajímají, jsou v sekci editoru GPO:

  • V systému Windows 7 (Vista) jsou potřebné zásady uvedeny v této části. - Konfigurace uživatele -> Šablony pro správu -> Součásti systému Windows -> Průzkumník Windows.
  • Ve Windows 8 / Windows 10 - Konfigurace uživatele -> Šablony pro správu -> Součásti systému Windows -> Průzkumník souborů

Vyhledejte a povolte (přeložit do Enable) následující zásady:

  • Vypněte zobrazování miniatur a zobrazujte pouze ikony v síťových složkách
  • Vypněte ukládání miniatur do skrytých souborů thumbs.db
  • Vypněte zobrazení miniatur a pouze zobrazovaných ikon

V první řadě nás zajímá 1 zásada, která zakazuje aplikaci Explorer vytvářet v síťových adresářích thumbs.db.

Zbývá přidělit zásadu uživatelům a aktualizovat ji v počítačích (gpupdate / force)

Zakázání vytváření Thumbs.db v síťových složkách prostřednictvím registru

V domácích vydáních Windows, které nemají Editor skupinových zásad, můžete zakázat vytváření skrytých souborů thumbs.db prostřednictvím editoru registru (regedit.exe)..

Za tímto účelem v sekci HKEY_CURRENT_USER \ Software \ Policies \ Microsoft \ Windows \ vytvořit podsekce Průzkumník (ve Windows 7 již existuje), ve kterém chcete vytvořit klíč typu REG_DWORD s názvem DisableThumbsDBOnNetworkFolders a hodnotu 1

Stejnou operaci lze provést jedním příkazem:

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

Jak odstranit soubory Thumbs.db ve všech adresářích

Existující soubory Thumbs.db se po povolení zásady automaticky neodstraní. Pomocí PowerShell můžete rekurzivně smazat všechny soubory Thumbs.db na konkrétní jednotce nebo adresáři serveru.

Přejdeme do požadovaného adresáře:

cd c: \ share
Získejte seznam všech Thumbs.db
Get-ChildItem -Path. -Include Thumbs.db -Recurse -Name -Force | Remove-Item -Force -WhatIF

Odstraňte nalezené soubory
Get-ChildItem -Path. -Include Thumbs.db -Recurse -Name -Force | Remove-Item -Force