FAQ Čišćenje i komprimiranje mape WinSxS u sustavima Windows 10 i 8.1

U ovom ćemo članku govoriti o imeniku WinSxS u Windowsima 10 i Windows 8.1, razlozi njegova stalnog rasta i metode čišćenja. imenik C: \ windows\ WinSxS je skladište Windows komponenata. Ovaj direktorij sadrži dll knjižnice, binarne datoteke i xml datoteke potrebne za instalaciju i rad Windows OS uloge. Kada instalirate ažuriranja za Windows (to se događa mjesečno), nova inačica ažurirane komponente instalira se na sustav, a stara se sprema u WinSxS pohranu (ovo je potrebno kako bi se osigurala kompatibilnost i mogućnost "povratka" na stare verzije komponenti prilikom brisanja problema s ažuriranjem).


sadržaj:

  • Kako saznati stvarnu veličinu WinSxX mape u sustavu Windows 10 / 8.1
  • Čišćenje spremnika komponenti (WinSxS mape) u sustavu Windows 10 / 8.1
  • Značajke na zahtjev na Windows 10 i 8.1
  • Omogućite kompresiju NTFS u mapi WinSxS u sustavima Windows 10 i 8.1

Kao što možda nagađate, direktorij WinSxS s vremenom će se stalno povećavati, a njegova veličina nije ničim ograničena (premda u praksi veličina WinSxS mape u sustavu Windows 10 / 8.1 rijetko prelazi 15-20 GB.)

Najprirodniji način da se smanji veličina mape WinSxS u sustavu Windows 10 i Windows 8 jest uklanjanje starih verzija preostalih komponenti nakon ažuriranja sustava iz sustava. Da biste to učinili, koristite standardni čarobnjak za cleanmgr disk ili posebne opcije naredbi DISM (vidi dolje).

vijeće. U Windows 7 SP 1 mogućnost brisanja starih datoteka za ažuriranje za čišćenje diska dostupna je samo nakon instaliranja zasebnog ažuriranja - KB 2852386.

Kako saznati stvarnu veličinu WinSxX mape u sustavu Windows 10 / 8.1

Još jedna značajka mape WinSxS je prisutnost velikog broja tzv teško linkovi (tvrdi simbolični linkovi). Tvrda veza je u potpunosti jednaka izvornom pokazivaču datoteke. tj pokazivač i izvorna datoteka mogu imati različita imena i biti unutar istog odjeljka u različitim direktorijima, ali u stvarnosti će oni ukazivati ​​na isti objekt. Zbog postojanja tvrdih veza koje su uključene u izračun ukupne veličine direktorija, upravitelji datoteka (uključujući Windows Explorer) pokazuju pomalo pretjeranu veličinu mape WinSxS. Pravu veličinu (bez tvrdih veza) WinSxS mape možete saznati pomoću uslužnog programa SysInternal du:

 du -v c: \ windows \ winSXS

Također možete analizirati veličinu pohrane komponenata (mapa WinSxS) pomoću naredbe DISM:

Dism.exe / Online / Cleanup-Image / AnalyzeComponentStore

Let's shvatiti što ova naredba vraća:

Veličina pohrane komponente prema Exploreru: 5,70 GB (ovo je veličina pohrane bez tvrdih veza)
Stvarna veličina prodavaonice komponenata: 5,49 GB (stvarna veličina prodavaonice komponenata, uključujući tvrde veze)
Kompatibilno sa sustavom Windows: 3,12 GB (potrebne sistemske datoteke, ne mogu se izbrisati)
Sigurnosne kopije i onemogućene komponente: 2,12 GB (zastarjele komponente datoteka koje su potrebne u slučaju problema s instaliranim ažuriranjima)
Predmemorija i privremeni podaci: 245,87 MB (datoteke se koriste za ubrzavanje sustava održavanja)
Zadnji očišćeni datum: 2018-07-31 12:45:23
Broj izdanih paketa: 10 (datoteke koje su ažurirane nakon instaliranja ažuriranja za Windows, bit će izbrisane kada se očisti spremnik)
Preporučuje se čišćenje spremišta značajki: Da

Kao što vidite, u ovom slučaju možete smanjiti veličinu WinSxS direktorija za 2,1 GB + 250 MB.

Za mnoge korisnike prirodno je pitanje je li moguće ručno izbrisati datoteke iz mape WinSxS. Odgovor na ovo pitanje je kategoričan NE! Takve akcije vrlo vjerojatno mogu pokvariti Windows. Iako su neki pokušaji brisanja datoteka iz mape WinSxS možda uspješni, ne možete preporučiti ovu metodu sa stajališta potencijalne opasnosti za sustav.

Zaustavimo se na bezopasnijim sa sistemskog stajališta metodama čišćenja mape WinSxS u sustavima Windows 10 i Windows 8.1. Ovo je:

  • Uklanjanje starijih komponenti, preostalo nakon instaliranja ažuriranja;
  • Značajke tehnologije na potražnja (funkcionira na zahtjev), omogućavajući uklanjanje neiskorištenih komponenti sustava Windows s diska;
  • Komprimiranje datoteka u WinSxS mapi - način da se smanji veličina WinSxS imenika zbog NTFS kompresije njegovog sadržaja.

Da bi se postigli maksimalni rezultati, sve tri metode mogu se koristiti zajedno..

Čišćenje spremnika komponenti (WinSxS mape) u sustavu Windows 10 / 8.1

Po mom mišljenju, najbrži i najlakši način čišćenja prostora za pohranu komponenata (tj. Brisanje mape WinSxS) brisanjem starih verzija komponenti je izvršavanje naredbe:

Dism.exe / Online / Cleanup-Image / StartComponentCleanup


Opcija / StartComponentCleanup ima dodatnu opciju. / Ponovno postavljanje, koji vam omogućuje uklanjanje svih prethodnih verzija komponenti (nakon toga nećete moći ukloniti instalirane nadogradnje ili servisni paket, a gumb "Izbriši" nestat će na ploči za ažuriranje appwiz.cpl). Čitava naredba izgleda ovako:

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

Također možete ukloniti zastarjele nadogradnje iz čarobnjaka za čišćenje diska. Pokrenite naredbu cleanmgr s povlasticama administratora.

U prozoru uslužnog programa odaberite pogon i u sljedećem prozoru kliknite gumb "Izbriši sistemske datoteke".

Zatim odaberite opciju "Datoteke dnevnika ažuriranja za Windows" i pritisnite U redu za početak čišćenja. Uslužni program Čišćenje diska pokazat će koliko slobodnog prostora možete izbrisati brisanjem datoteka dnevnika starih ažuriranja za Windows. U mom primjeru to je 427 MB.

Nakon čišćenja spremišta pomoću DISM-a, provjerite koliko je slobodnog prostora na disku dostupno..

Osim toga, Windows 10 planer ima poseban zadatak automatskog održavanja koji izvodi istu operaciju kao i dism s tipkom StartComponentCleanup, uklanjajući sve zastarjele nadogradnje starije od 30 dana. Ova potraga je imenovana StartComponentCleanup nalazi se pod \ Microsoft \ Windows \ Servisiranje.

Značajke na zahtjev na Windows 10 i 8.1

U članku "Sigurno brisanje mape WinSxS u sustavu Windows Server 2012" ispitali smo funkciju Značajke na potražnja (funkcije na zahtjev), što pruža mogućnost brisanja binarnih datoteka neiskorištenih uloga iz WinSxS direktorija. Postoji poseban Powershell cmdlet za uklanjanje neiskorištenih uloga s diska. - Uninstall-WindowsFeature. Međutim, u slučaju Windows 10 i 8.1, nije sve tako jednostavno. Činjenica je da nedostaje cmdlet Uninstall-WindowsFeature u ovim verzijama sustava Windows. I značajke on Demand tehnologija implementirane su samo pomoću DISM-a ili cmdleta DISM PowerShell. Pored toga, važno je znati da naredba DISM, za razliku od cmdleta Uninstall-WindowsFeature, ne analizira međusobne ovisnosti paketa. Kada uklonite Windows paket pomoću DISM-a, izbrisat će se samo komponenta navedena u naredbi, a svi paketi o njemu ovise u sustavu. Iz tog razloga ne biste trebali koristiti DISM za uklanjanje uloga s diska u sustavu Windows Server 2012, jer postoji mnogo prikladniji i funkcionalniji alat.

Potpuni popis dostupnih funkcija na slici Windows 10 / 8.1 može se dobiti naredbom:
DISM.exe / Online / Engleski / Get-Features / Format: Tablica

Pretpostavimo, na primjer, da je komponenta TelnetClient u budućnosti nam ne trebaju. Uklonite ovu komponentu s diska (u osnovi iz direktorija WinSxS) naredbom:
DISM.exe / Online / Disable-Feature / Featurename: TelnetClient / Remove

Ako ponovno navedete sve dostupne značajke na zahtjev u sustavu Windows, vidjet ćete da se status komponente mijenja u onesposobljen s korisna nosivost Uklonjeno.

Tako u sustavu Windows možete značajno smanjiti veličinu mape WinSxS brisanjem neiskorištenih komponenti s diska. Jedino upozorenje je da je mogućnost čišćenja direktorija WinSxS prikladna za dovoljno napredne korisnike koji razumiju komponente Windows 10 i njihovu svrhu.

Omogućite kompresiju NTFS u mapi WinSxS u sustavima Windows 10 i 8.1

Drugi način za smanjenje veličine WinSxS direktorija u sustavu Windows 10 / 8.1 je komprimiranje sadržaja mape na razini datotečnog sustava NTFS..

primjedba. Kao i kod svake druge nestandardne intervencije u konfiguraciji sustava, visoko se preporučuje izvesti cjelovitu sigurnosnu kopiju sustava.
  1. Otvorite naredbeni redak s povlasticama administratora;
  2. Zaustavite i onemogućite usluge Instalatora sustava Windows i programa Windows Module:
    sc stop msiserver sc stop TrustedInstaller sc config msiserver start = onemogućen sc config TrustedInstaller start = onemogućen
  3. Izradite sigurnosnu kopiju pristupnih popisa (ACL-ova) dodijeljenih datotekama i mapama u WinSxS direktoriju pomoću alata icacls. Sigurnosna kopija ACL-a je redovna tekstualna datoteka koja sadrži sve datoteke i mape te dozvole koje im je dodijelio NTFS (kasnije će ta sigurnosna kopija biti potrebna za obnavljanje izvornih ACL-ova):
    icacls "% WINDIR% \ WinSxS" / save "% WINDIR% \ WinSxS_NTFS.acl" / t

  4. Priznajte se vlasnikom mape WinSxS i svih poddirektorija:
    takeown / f "% WINDIR% \ WinSxS" / r
  5. Omogućite svom računu puna prava na WinSxS direktorij:
    icacls "% WINDIR% \ WinSxS" / odobri "% USERDOMAIN% \% USERNAME%" :( F) / t
  6. Pomoću naredbe komprimirajte WinSxS direktorij i sav njegov sadržaj kompaktni. Sustav može koristiti neke datoteke pa ako pokrenete naredbu bez opcije / i, kompresija će se zaustaviti na prvoj datoteci koju sustav trenutno koristi. Pomoću Process Explorera možete pronaći naziv postupka koji je otvorio datoteku (CTRL + F) i ukinuti je. Ovaj pristup kompresije zahtijeva mnogo vremena. Ograničit ćemo se samo na komprimiranje neiskorištenih datoteka (u sustavu Windows 10 možete koristiti napredniju kompresiju LZX-a):
    compact / s: "% WINDIR% \ WinSxS" / c / a / i *

  7. Vratite vlasnika WinSxS mape vraćanjem TrustedInstaller:
    icacls "% WINDIR% \ WinSxS" / setowner "NT SERVICE \ TrustedInstaller" / t
  8. Vratite izvorne dozvole NTFS u direktorij WinSxS iz sigurnosne kopije ACL: icacls "% WINDIR%" / obnovi "% WINDIR% \ WinSxS_NTFS.acl"
  9. Vratite vrstu pokretanja servisa za Windows Installer i Windows Module:
    sc config msiserver start = potražnja sc config TrustedInstaller start = potražnja

Provjerite trenutnu veličinu WinSxS kataloga:

Kao što vidite, u našem primjeru, veličina mape WinSxS zbog kompresije smanjena je od 5.8 GB do 4 GB (oko trećine). Nije loše, pogotovo za mali SSD-pogon, mjesto na kojem je prilično skupo.

Što kompresija WinSxS imenika može utjecati.

Windows radi s komprimiranim datotekama u prozirnom načinu rada, međutim, prilikom obrade takvih datoteka možda će im trebati dodatnog vremena za dekomprimiranje / sažimanje, što znači određeno usporavanje instalacije Windows komponenti ili ažuriranja. Međutim, za moderne procesore (CPU) kompresija / dekompresija datoteke vrši se gotovo trenutno, tako da korisnik možda uopće ne primjećuje stvarno smanjenje brzine. I ne samo to, ako je tvrdi disk spor i procesor je dovoljno brz - čak i sa kompresijom možete primijetiti porast brzine rada s pogonom! Imajte na umu da kada omogućite ntfs kompresiju cjelokupnog sadržaja mape WinSxS, broj datoteka u drugim direktorijima sustava biti će komprimiran zbog upotrebe tvrdih veza.

Ove se naredbe mogu izvesti zasebno (lakše je kontrolirati uspjeh svake od njih) ili možete kombinirati sve operacije u jednoj datoteci skripte, kada se pokrene, započet će postupak kompresije podataka u mapi WinSxS. Gotovu batch datoteku možete preuzeti ovdje: compress_winsxs.bat

Ova se skripta može stalno koristiti tijekom rada sustava, jer Nakon instaliranja novih ažuriranja i programa, nove "nekomprimirane" datoteke pojavit će se u WinSxS direktoriju.

primjedba. Još jedna skripta hoda mrežom, omogućujući vam da smanjite veličinu mape WinSxS -   WinSxSLite (od Christian Bering Boegh). Ova skripta, prema podacima razvojnog programera, traži najnovije datoteke biblioteka na disku i stvara veze do njih iz svih prethodnih verzija i briše nevažne verzije. Smatramo potrebnim odvratiti naše čitatelje da koriste WinSxSLite skriptu, jer unatoč prilično razumnoj ideji, rezultat njegovog izvršavanja nepredvidiv je, a usprkos smanjenju veličine WinSxS direktorija, dio Windows funkcije prestaje raditi.