FAQ Čištění a komprese složky WinSxS ve Windows 10 a 8.1

V tomto článku budeme hovořit o adresáři Winxx v systémech Windows 10 a Windows 8.1 důvody pro jejich neustálý růst a metody čištění. Katalog C: \ windows\ WinSxS je úložiště komponent systému Windows. Tento adresář obsahuje dll knihovny, binární a xml soubory potřebné pro instalaci a provoz role Windows OS. Při instalaci aktualizací systému Windows (k tomu dochází měsíčně) se v systému nainstaluje nová verze aktualizované součásti a stará se uloží do úložiště WinSxS (je to nutné k zajištění kompatibility a schopnosti vrátit se zpět ke starým verzím součástí při odstraňování problematické aktualizace).


Obsah:

  • Jak zjistit skutečnou velikost složky WinSxX v systému Windows 10 / 8.1
  • Vyčištění úložiště komponent (složky WinSxS) ve Windows 10 / 8.1
  • Funkce On Demand ve Windows 10 a 8.1
  • Povolit kompresi NTFS ve složce WinSxS ve Windows 10 a 8.1

Jak můžete hádat, adresář WinSxS se bude v průběhu času neustále zvětšovat a jeho velikost není nijak omezena (i když v praxi velikost složky WinSxS ve Windows 10 / 8.1 zřídka přesahuje 15-20 GB.)

Nejpřirozenějším způsobem, jak zmenšit velikost složky WinSxS v systému Windows 10 a Windows 8, je odebrání starých verzí součástí zbývajících po aktualizaci systému ze systému. Chcete-li to provést, použijte standardní průvodce diskem cleanmgr nebo speciální možnosti příkazu DISM (viz níže).

Tip. V systému Windows 7 SP 1 je možnost odstranit staré soubory aktualizace pro vyčištění disku k dispozici až po instalaci samostatné aktualizace - KB 2852386.

Jak zjistit skutečnou velikost složky WinSxX v systému Windows 10 / 8.1

Další funkcí složky WinSxS je přítomnost velkého počtu tzv těžké odkazy (pevné symbolické odkazy). Pevný odkaz je zcela stejný jako ukazatel původního souboru. I.e. Ukazatel a zdrojový soubor mohou mít různá jména a mohou být ve stejné sekci v různých adresářích, ale ve skutečnosti budou ukazovat na stejný objekt. Je to kvůli přítomnosti pevných odkazů, které jsou zahrnuty do výpočtu celkové velikosti adresáře, správci souborů (včetně Průzkumníka Windows) vykazují poněkud přehnanou velikost složky WinSxS. Skutečnou velikost složky WinSxS (s výjimkou pevných odkazů) můžete zjistit pomocí obslužného programu SysInternal du:

 du -v c: \ windows \ winSXS

Velikost úložiště komponent (složky WinSxS) můžete také analyzovat pomocí příkazu DISM:

Dism.exe / Online / Cleanup-Image / AnalyzeComponentStore

Pojďme zjistit, co tento příkaz vrací:

Velikost úložiště komponent podle Průzkumníka: 5,70 GB (jedná se o velikost úložiště bez pevných odkazů)
Skutečná velikost úložiště součástí: 5,49 GB (skutečná velikost úložiště součástí, včetně pevných odkazů)
Kompatibilní s Windows: 3,12 GB (povinné systémové soubory, nelze vymazat)
Zálohy a deaktivované komponenty: 2,12 GB (zastaralé soubory součástí, které jsou potřebné v případě problémů s nainstalovanými aktualizacemi)
Mezipaměť a dočasná data: 245,87 MB (soubory se používají k urychlení systému údržby)
Datum poslední čištění: 2018-07-31 12:45:23
Počet vydaných balíčků: 10 (soubory, které byly aktualizovány po instalaci aktualizací systému Windows, budou po vyčištění úložiště odstraněny)
Doporučené vyčištění obchodu: Ano

Jak vidíte, v tomto případě můžete zmenšit velikost adresáře WinSxS o 2,1 GB + 250 MB.

Pro mnoho uživatelů je přirozenou otázkou, zda je možné ručně odstranit soubory ze složky WinSxS. Odpověď na tuto otázku je kategorická NE! Takové akce velmi pravděpodobně naruší Windows. Přestože některé pokusy o odstranění souborů ze složky WinSxS mohou být úspěšné, nemůžete tuto metodu doporučit z hlediska možného nebezpečí pro systém..

Pojďme se zaměřit na nejnebezpečnější ze systémového hlediska metody čištění složky WinSxS ve Windows 10 a Windows 8.1. Toto je:

  • Odstranění starších součástí, zbývající po instalaci aktualizací;
  • Technologické funkce dál Poptávka (funkce na vyžádání), což vám umožní odstranit nepoužité součásti systému Windows z disku;
  • Komprimace souborů ve složce WinSxS - způsob, jak snížit velikost adresáře WinSxS z důvodu komprese obsahu NTFS.

Pro dosažení maximálních výsledků lze všechny tři metody použít společně..

Vyčištění úložiště komponent (složky WinSxS) ve Windows 10 / 8.1

Podle mého názoru nejrychlejším a nejsnadnějším způsobem, jak vymazat úložný prostor komponent (tj. Vymazat složku WinSxS) odstraněním starých verzí komponent, je provedení příkazu:

Dism.exe / Online / Cleanup-Image / StartComponentCleanup


Možnost / StartComponentCleanup má další možnost. / Resetbase, což vám umožní odstranit všechny předchozí verze součástí (poté nebudete moci odebrat nainstalované aktualizace nebo aktualizaci Service Pack a na panelu aktualizací appwiz.cpl zmizí tlačítko „Odstranit“) Celý příkaz vypadá takto:

Dism.exe / Online / Cleanup-Image / StartComponentCleanup / ResetBase

Z Průvodce odstraněním disku můžete také odstranit zastaralé aktualizace. Spusťte příkaz cleanmgr s oprávněními správce.

V okně nástroje vyberte jednotku av dalším okně klikněte na tlačítko „Vymazat systémové soubory“.

Dále vyberte možnost „Soubory protokolu aktualizace systému Windows“ a kliknutím na tlačítko OK spusťte čištění. Nástroj Vyčištění disku ukáže, kolik místa můžete uvolnit odstraněním souborů protokolu starých aktualizací systému Windows. V mém příkladu je to 427 MB.

Po vyčištění úložiště pomocí DISM zkontrolujte, kolik volného místa na disku je k dispozici..

Plánovač systému Windows 10 má navíc speciální úlohu automatické údržby, která provádí stejnou operaci jako odstranění pomocí klávesy StartComponentCleanup a odstraní všechny zastaralé aktualizace starší než 30 dnů. Tento úkol je pojmenován StartComponentCleanup umístěn pod \ Microsoft \ Windows \ Servicing.

Funkce On Demand ve Windows 10 a 8.1

V článku „Bezpečné vymazání složky WinSxS v systému Windows Server 2012“ jsme tuto funkci prozkoumali Funkce dál Poptávka (funkce na vyžádání), což umožňuje mazat binární soubory nepoužitých rolí z adresáře WinSxS. Pro odstranění nepoužitých rolí z disku existuje speciální rutina Powershell. - Odinstalovat-WindowsFeature. V případě Windows 10 a 8.1 však není vše tak jednoduché. Faktem je, že cmdlet Uninstall-WindowsFeature v těchto verzích Windows chybí. Technologie Features on Demand je implementována pouze pomocí DISM nebo cmDlet DISM PowerShell. Kromě toho je důležité vědět, že příkaz DISM na rozdíl od cmdlet Uninstall-WindowsFeature neanalyzuje závislosti balíčků na sobě. Když tedy odeberete balíček Windows pomocí DISM, budou odstraněny pouze komponenty uvedené v příkazu a všechny balíčky závislé na něm zůstanou v systému. Z tohoto důvodu byste neměli používat DISM k odstranění rolí z disku v systému Windows Server 2012, protože existuje mnohem pohodlnější a funkčnější nástroj.

Úplný seznam dostupných funkcí v obrazu Windows 10 / 8.1 lze získat příkazem:
DISM.exe / Online / English / Get-Features / Format: Table

Předpokládejme například, že komponenta Telnetclient v budoucnu nepotřebujeme. Odebrat tuto součást z disku (v podstatě z adresáře WinSxS) příkazem:
DISM.exe / Online / Disable-Feature / Featurename: TelnetClient / Remove

Pokud znovu uvedete všechny dostupné funkce na vyžádání v systému Windows, uvidíte, že se stav komponenty změnil na Zakázáno s Užitečné zatížení Odebráno.

Ve Windows tedy můžete výrazně snížit velikost složky WinSxS odstraněním nepoužitých komponent z disku. Jedinou výzvou je, že možnost čištění adresáře WinSxS je vhodná pro dostatečné pokročilé uživatele, kteří rozumí komponentám systému Windows 10 a jejich účelu..

Povolit kompresi NTFS ve složce WinSxS ve Windows 10 a 8.1

Dalším způsobem, jak zmenšit velikost adresáře WinSxS v systému Windows 10 / 8.1, je komprimovat obsah adresáře na úrovni systému souborů NTFS..

Poznámka:. Stejně jako u jiných nestandardních zásahů do konfigurace systému se důrazně doporučuje provést úplnou zálohu systému.
  1. Otevřete příkazový řádek s oprávněními správce;
  2. Zastavení a zakázání služeb Instalační služby systému Windows a Instalační služby modulu Windows:
    sc stop msiserver sc stop TrustedInstaller sc config msiserver start = vypnuto sc config TrustedInstaller start = vypnuto
  3. Zálohujte přístupové seznamy (ACL) přiřazené k souborům a složkám v adresáři WinSxS pomocí obslužného programu icacls. Záložní kopie ACL je běžný textový soubor, který obsahuje seznam všech souborů a adresářů a oprávnění, která jim byla přidělena NTFS (později bude tato záloha potřebná k obnovení původních ACL):
    icacls "% WINDIR% \ WinSxS" / save "% WINDIR% \ WinSxS_NTFS.acl" / t

  4. Přiřaďte si vlastníka složky WinSxS a všech podadresářů:
    takeown / f "% WINDIR% \ WinSxS" / r
  5. Udělte svému účtu plná práva do adresáře WinSxS:
    icacls "% WINDIR% \ WinSxS" / grant "% USERDOMAIN% \% USERNAME%" :( F) / t
  6. Komprimujte adresář WinSxS a veškerý jeho obsah pomocí příkazu kompaktní. Některé soubory může systém použít, takže pokud spustíte příkaz bez volby / i, bude komprese zastavena u úplně prvního souboru, který systém aktuálně používá. Pomocí Průzkumníka procesů můžete najít název procesu, který soubor otevřel (CTRL + F) a ukončit jej. Tento kompresní přístup je časově velmi náročný. Omezíme se pouze na komprimaci nepoužívaných souborů (v systému Windows 10 můžete použít pokročilejší kompresi LZX):
    compact / s: "% WINDIR% \ WinSxS" / c / a / i *

  7. Obnovte vlastníka adresáře WinSxS vrácením TrustedInstaller:
    icacls "% WINDIR% \ WinSxS" / setowner "NT SERVICE \ TrustedInstaller" / t
  8. Obnovte původní oprávnění NTFS do adresáře WinSxS ze zálohy ACL: icacls "% WINDIR%" / restore "% WINDIR% \ WinSxS_NTFS.acl"
  9. Obnovte typ spouštění služeb Instalační služby systému Windows a Instalační služby systému Windows:
    sc config msiserver start = demand sc config TrustedInstaller start = demand

Zkontrolujte aktuální velikost adresáře WinSxS:

Jak vidíte, v našem příkladu se velikost složky WinSxS z důvodu komprese snížila z 5.8 GB na 4 GB (asi třetina). Není to špatné, zejména u malého disku SSD, kde je místo poměrně drahé.

Co může ovlivnit komprese adresáře WinSxS.

Windows pracuje s komprimovanými soubory v průhledném režimu, ale při zpracování takových souborů může vyžadovat další čas na jejich dekomprimaci / kompresi, což znamená určité zpomalení instalace součástí nebo aktualizací systému Windows. U moderních procesorů (CPU) se však komprese / dekomprese souborů provádí téměř okamžitě, takže si uživatel nemusí ani všimnout skutečného snížení rychlosti. Nejen to, že pokud je pevný disk pomalý a procesor je dostatečně rychlý - i při kompresi si můžete všimnout zvýšení rychlosti práce s jednotkou! Všimněte si, že když povolíte komprimaci celého obsahu složky WinSxS ntfs, bude z důvodu použití pevných odkazů komprimováno několik souborů v jiných systémových adresářích..

Tyto příkazy lze provádět samostatně (je snazší řídit úspěšnost každého z nich), nebo můžete všechny operace sloučit do jediného souboru skriptu, při spuštění se spustí procedura komprese dat ve složce WinSxS. Hotový dávkový soubor si můžete stáhnout zde: compress_winsxs.bat

Tento skript lze používat nepřetržitě během provozu systému, protože po instalaci nových aktualizací a programů se v adresáři WinSxS objeví nové „nekomprimované“ soubory.

Poznámka:. Jiný skript chodí po síti a umožňuje vám zmenšit velikost složky WinSxS -   WinSxSLite (od Christian Bering Boegh). Tento skript podle informací vývojáře vyhledává nejnovější soubory knihovny na disku a vytváří na ně odkazy ze všech předchozích verzí a odstraní irelevantní verze. Považujeme za nutné odradit naše čtenáře od používání skriptu WinSxSLite, protože i přes poněkud rozumnou myšlenku je výsledek jeho provedení nepředvídatelný a navzdory snížení velikosti adresáře WinSxS přestane fungovat část funkcí systému Windows.