Często zadawane pytania Czyszczenie i kompresowanie folderu WinSxS w systemie Windows 10 i 8.1

W tym artykule porozmawiamy o katalogu Winxx w Windows 10 i Windows 8.1, przyczyny jego ciągłego wzrostu i metod czyszczenia. Katalog C.: \ windows\ WinSxS jest repozytorium komponentów Windows. Ten katalog zawiera biblioteki dll, pliki binarne i xml niezbędne do instalacji i działania roli systemu operacyjnego Windows. Podczas instalowania aktualizacji systemu Windows (dzieje się to co miesiąc) nowa wersja zaktualizowanego składnika jest instalowana w systemie, a stara jest zapisywana w pamięci WinSxS (jest to konieczne, aby zapewnić zgodność i możliwość „przywrócenia” starych wersji składników podczas usuwania aktualizacji problemu).


Treść

  • Jak znaleźć rzeczywisty rozmiar folderu WinSxX w systemie Windows 10 / 8.1
  • Czyszczenie magazynu składników (folderów WinSxS) w systemie Windows 10 / 8.1
  • Funkcje na żądanie w Windows 10 i 8.1
  • Włącz kompresję NTFS w folderze WinSxS w Windows 10 i 8.1

Jak można się domyślać, katalog WinSxS będzie z czasem stale się powiększał, a jego rozmiar nie jest niczym ograniczony (chociaż w praktyce rozmiar folderu WinSxS w systemie Windows 10 / 8.1 rzadko przekracza 15-20 GB.)

Najbardziej naturalnym sposobem na zmniejszenie rozmiaru folderu WinSxS w Windows 10 i Windows 8 jest usunięcie starych wersji składników pozostałych po aktualizacji systemu z systemu. Aby to zrobić, użyj standardowego kreatora dysku cleanmgr lub specjalnych opcji polecenia DISM (patrz poniżej).

Wskazówka. W systemie Windows 7 SP 1 możliwość usuwania starych plików aktualizacji w celu wyczyszczenia dysku jest dostępna tylko po zainstalowaniu osobnej aktualizacji - KB 2852386.

Jak znaleźć rzeczywisty rozmiar folderu WinSxX w systemie Windows 10 / 8.1

Kolejną cechą folderu WinSxS jest obecność dużej liczby tzw ciężko linki (twarde dowiązania symboliczne). Twardy link jest całkowicie równy oryginalnemu wskaźnikowi pliku. Tj. wskaźnik i plik źródłowy mogą mieć różne nazwy i znajdować się w tej samej sekcji w różnych katalogach, ale w rzeczywistości będą wskazywać ten sam obiekt. Z powodu obecności twardych łączy, które są uwzględniane przy obliczaniu całkowitego rozmiaru katalogu, menedżery plików (w tym Eksplorator Windows) pokazują nieco przesadzony rozmiar folderu WinSxS. Rzeczywisty (bez twardych linków) rozmiar folderu WinSxS można znaleźć za pomocą narzędzia SysInternal du:

 du -v c: \ windows \ winSXS

Możesz także przeanalizować rozmiar składowej pamięci (folder WinSxS) za pomocą polecenia DISM:

Dism.exe / Online / Cleanup-Image / AnalyzeComponentStore

Zobaczmy, co zwraca to polecenie:

Rozmiar pamięci komponentowej według Eksploratora: 5,70 GB (jest to rozmiar pamięci bez twardych łączy)
Rzeczywisty rozmiar magazynu składników: 5,49 GB (rzeczywisty rozmiar sklepu składników, w tym twarde łącza)
Kompatybilny z Windows: 3,12 GB (wymagane pliki systemowe, nie można ich usunąć)
Kopie zapasowe i wyłączone komponenty: 2,12 GB (nieaktualne pliki komponentów, które są potrzebne w przypadku problemów z zainstalowanymi aktualizacjami)
Pamięć podręczna i dane tymczasowe: 245,87 MB (pliki służą do przyspieszenia systemu konserwacji)
Data ostatniego czyszczenia: 2018-07-31 12:45:23
Liczba wydanych pakietów: 10 (pliki, które zostały zaktualizowane po zainstalowaniu aktualizacji systemu Windows, zostaną usunięte po wyczyszczeniu magazynu)
Zalecane czyszczenie sklepu w sklepie: Tak

Jak widać, w tym przypadku możesz zmniejszyć rozmiar katalogu WinSxS o 2,1 GB + 250 MB.

Dla wielu użytkowników naturalnym pytaniem jest to, czy można ręcznie usunąć pliki z folderu WinSxS. Odpowiedź na to pytanie jest kategoryczna NIE! Takie działania mogą bardzo zakłócić działanie systemu Windows. Chociaż niektóre próby usunięcia plików z folderu WinSxS mogą zakończyć się powodzeniem, nie można polecić tej metody z punktu widzenia potencjalnego zagrożenia dla systemu.

Zastanówmy się nad najbardziej nieszkodliwymi z systemowego punktu widzenia metodami czyszczenia folderu WinSxS w Windows 10 i Windows 8.1. To jest:

  • Usuwanie starszych komponentów, pozostały po zainstalowaniu aktualizacji;
  • Funkcje technologiczne na Popyt (funkcje na żądanie), co pozwala usunąć nieużywane składniki systemu Windows z dysku;
  • Kompresowanie plików w folderze WinSxS - sposób zmniejszenia rozmiaru katalogu WinSxS z powodu kompresji NTFS jego zawartości.

Aby osiągnąć maksymalne wyniki, wszystkie trzy metody można stosować razem..

Czyszczenie magazynu składników (folderów WinSxS) w systemie Windows 10 / 8.1

Moim zdaniem najszybszym i najłatwiejszym sposobem na wyczyszczenie przestrzeni dyskowej komponentów (tj. Wyczyszczenie folderu WinSxS) poprzez usunięcie starych wersji komponentów jest wykonanie polecenia:

Dism.exe / Online / Cleanup-Image / StartComponentCleanup


Opcja / StartComponentCleanup ma dodatkową opcję. / Resetbase, co pozwala usunąć wszystkie poprzednie wersje składników (po tym nie będzie można usunąć zainstalowanych aktualizacji ani dodatku Service Pack, a przycisk „Usuń” zniknie w panelu aktualizacji appwiz.cpl) Całe polecenie wygląda następująco:

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

Możesz także usunąć przestarzałe aktualizacje z Kreatora oczyszczania dysku. Uruchom komendę cleanmgr z uprawnieniami administratora.

W oknie narzędzia wybierz napęd, aw następnym oknie kliknij przycisk „Wyczyść pliki systemowe”.

Następnie wybierz opcję „Pliki dziennika aktualizacji systemu Windows” i kliknij przycisk OK, aby rozpocząć czyszczenie. Narzędzie Oczyszczanie dysku pokaże, ile miejsca można zwolnić, usuwając pliki dziennika starych aktualizacji systemu Windows. W moim przykładzie jest to 427 MB.

Po wyczyszczeniu magazynu za pomocą DISM sprawdź, ile wolnego miejsca na dysku jest dostępne..

Ponadto program planujący systemu Windows 10 ma specjalne automatyczne zadanie konserwacyjne, które wykonuje tę samą operację, co polecenie disc za pomocą klucza StartComponentCleanup, usuwając wszystkie przestarzałe aktualizacje starsze niż 30 dni. To zadanie ma nazwę StartComponentCleanup znajduje się w folderze \ Microsoft \ Windows \ Servicing.

Funkcje na żądanie w Windows 10 i 8.1

W artykule „Bezpieczne czyszczenie folderu WinSxS w systemie Windows Server 2012” zbadaliśmy tę funkcję Funkcje na Popyt (funkcje na żądanie), który umożliwia usuwanie plików binarnych nieużywanych ról z katalogu WinSxS. Istnieje specjalne polecenie cmdlet programu PowerShell do usuwania nieużywanych ról z dysku. - Odinstaluj-Windows Funkcja. Jednak w przypadku Windows 10 i 8.1 nie wszystko jest takie proste. Faktem jest, że w tych wersjach systemu Windows brakuje polecenia cmdlet Uninstall-WindowsFeature. Technologia Funkcje na żądanie jest implementowana tylko za pomocą polecenia DISM lub polecenia cmdlet PowerShell DISM. Ponadto ważne jest, aby wiedzieć, że polecenie DISM, w przeciwieństwie do polecenia cmdlet Uninstall-WindowsFeature, nie analizuje wzajemnych zależności między pakietami. Kiedy więc usuniesz pakiet Windows za pomocą DISM, tylko składnik określony w poleceniu zostanie usunięty, a wszystkie zależne od niego pakiety pozostaną w systemie. Z tego powodu nie należy używać narzędzia DISM do usuwania ról z dysku w systemie Windows Server 2012, ponieważ jest o wiele wygodniejsze i funkcjonalne narzędzie.

Pełną listę dostępnych funkcji w obrazie systemu Windows 10 / 8.1 można uzyskać za pomocą polecenia:
DISM.exe / Online / angielski / Get-Features / Format: Table

Załóżmy na przykład, że składnik Telnetclient w przyszłości nie potrzebujemy. Usuń ten składnik z dysku (zasadniczo z katalogu WinSxS) za pomocą polecenia:
DISM.exe / Online / Disable-Feature / Featurename: TelnetClient / Remove

Jeśli ponownie wyświetlisz listę wszystkich dostępnych funkcji na żądanie w systemie Windows, zobaczysz, że status składnika zmienia się na Niepełnosprawnych z Ładowność Usunięto.

Dlatego w systemie Windows można znacznie zmniejszyć rozmiar folderu WinSxS, usuwając nieużywane składniki z dysku. Jedynym zastrzeżeniem jest to, że opcja czyszczenia katalogu WinSxS jest odpowiednia dla wystarczającej liczby zaawansowanych użytkowników, którzy rozumieją składniki systemu Windows 10 i ich przeznaczenie.

Włącz kompresję NTFS w folderze WinSxS w Windows 10 i 8.1

Innym sposobem zmniejszenia rozmiaru katalogu WinSxS w systemie Windows 10 / 8.1 jest kompresja zawartości katalogu na poziomie systemu plików NTFS..

Uwaga. Podobnie jak w przypadku każdej innej niestandardowej interwencji w konfigurację systemu, zdecydowanie zaleca się wykonanie pełnej kopii zapasowej systemu.
  1. Otwórz wiersz polecenia z uprawnieniami administratora;
  2. Zatrzymaj i wyłącz usługi Instalatora Windows i Instalatora modułów systemu Windows:
    sc stop msiserver sc stop TrustedInstaller sc config msiserver start = wyłączone sc config TrustedInstaller start = wyłączone
  3. Wykonaj kopię zapasową list dostępu (ACL) przypisanych do plików i folderów w katalogu WinSxS za pomocą narzędzia icacls. Kopia zapasowa ACL to zwykły plik tekstowy, który zawiera listę wszystkich plików i katalogów oraz uprawnienia przypisane im przez NTFS (później ta kopia zapasowa będzie potrzebna do przywrócenia oryginalnych list ACL):
    icacls "% WINDIR% \ WinSxS" / save "% WINDIR% \ WinSxS_NTFS.acl" / t

  4. Podaj się za właściciela folderu WinSxS i wszystkich podkatalogów:
    takeown / f "% WINDIR% \ WinSxS" / r
  5. Przyznaj swoje konto pełne prawa do katalogu WinSxS:
    icacls "% WINDIR% \ WinSxS" / grant "% USERDOMAIN% \% USERNAME%" :( F) / t
  6. Skompresuj katalog WinSxS i całą jego zawartość za pomocą polecenia kompaktowy. Niektóre pliki mogą być używane przez system, więc jeśli uruchomisz polecenie bez opcji / i, kompresja zostanie zatrzymana na pierwszym pliku aktualnie używanym przez system. Korzystając z Process Explorer, możesz znaleźć nazwę procesu, który otworzył plik (CTRL + F) i go zakończyć. Takie podejście do kompresji jest bardzo czasochłonne. Ograniczymy się tylko do kompresji nieużywanych plików (w Windows 10 możesz użyć bardziej zaawansowanej kompresji LZX):
    compact / s: "% WINDIR% \ WinSxS" / c / a / i *

  7. Przywróć właściciela katalogu WinSxS, zwracając TrustedInstaller:
    icacls "% WINDIR% \ WinSxS" / setowner "NT SERVICE \ TrustedInstaller" / t
  8. Przywróć oryginalne uprawnienia NTFS do katalogu WinSxS z kopii zapasowej ACL: icacls "% WINDIR%" / restore "% WINDIR% \ WinSxS_NTFS.acl"
  9. Przywróć typ uruchamiania usług Instalatora Windows i Instalatora modułów systemu Windows:
    sc config msiserver start = popyt sc config TrustedInstaller start = popyt

Sprawdź aktualny rozmiar katalogu WinSxS:

Jak widać, w naszym przykładzie rozmiar folderu WinSxS z powodu kompresji zmniejszył się z 5.8 GB do 4 GB (około jednej trzeciej). Nieźle, zwłaszcza jak na mały dysk SSD, w którym miejsce jest dość drogie.

Na jaką kompresję katalogu WinSxS może mieć wpływ.

Windows działa ze skompresowanymi plikami w trybie przezroczystym, jednak podczas przetwarzania takich plików może być potrzebny dodatkowy czas na ich zdekompresowanie / skompresowanie, co oznacza pewne spowolnienie instalacji składników lub aktualizacji systemu Windows. Jednak w przypadku współczesnych procesorów (procesorów) kompresja / dekompresja plików jest wykonywana niemal natychmiast, więc użytkownik może nawet nie zauważyć rzeczywistego zmniejszenia prędkości. Co więcej, jeśli dysk twardy jest wolny, a procesor jest wystarczająco szybki - nawet przy kompresji można zauważyć wzrost prędkości pracy z dyskiem! Pamiętaj, że po włączeniu kompresji NTFS całej zawartości folderu WinSxS niektóre pliki w innych katalogach systemowych zostaną skompresowane z powodu użycia twardych łączy.

Te polecenia można wykonać osobno (łatwiej jest kontrolować sukces każdego z nich) lub można połączyć wszystkie operacje w jeden plik skryptu, po uruchomieniu rozpocznie się procedura kompresji danych w folderze WinSxS. Możesz pobrać gotowy plik wsadowy tutaj: compress_winsxs.bat

Skrypt ten może być stale używany podczas działania systemu, ponieważ po zainstalowaniu nowych aktualizacji i programów, nowe „nieskompresowane” pliki pojawią się w katalogu WinSxS.

Uwaga. Kolejny skrypt krąży po sieci, co pozwala zmniejszyć rozmiar folderu WinSxS -   WinSxSLite (od Christian Bering Boegh). Skrypt ten, zgodnie z informacjami dewelopera, wyszukuje najnowsze pliki bibliotek na dysku i tworzy łącza do nich ze wszystkich poprzednich wersji oraz usuwa niepotrzebne wersje. Uważamy za konieczne, aby zniechęcić naszych czytelników do korzystania ze skryptu WinSxSLite, ponieważ pomimo dość rozsądnego pomysłu wynik jego wykonania jest nieprzewidywalny i pomimo zmniejszenia rozmiaru katalogu WinSxS część funkcjonalności systemu Windows przestaje działać.