Pogosta vprašanja Čiščenje in stiskanje mape WinSxS v sistemih Windows 10 in 8.1

V tem članku bomo govorili o imeniku Winxx v sistemih Windows 10 in Windows 8.1 so razlogi za njeno stalno rast in metode čiščenja. Katalog C: \ windows\ WinSxS je skladišče komponent sistema Windows. Ta imenik vsebuje knjižnice dll, binarne datoteke in datoteke xml, potrebne za namestitev in delovanje vloge operacijskega sistema Windows. Ko nameščate posodobitve za Windows (to se zgodi mesečno), je nova različica posodobljene komponente nameščena v sistemu, stara pa se shrani v shrambo WinSxS (to je potrebno za zagotovitev združljivosti in zmožnosti "vrnitve" na stare različice komponent pri brisanju težave s posodobitvijo).


Vsebina:

  • Kako ugotoviti resnično velikost mape WinSxX v operacijskem sistemu Windows 10 / 8.1
  • Čiščenje skladišča komponent (mape WinSxS) v sistemu Windows 10 / 8.1
  • Funkcije na zahtevo v sistemih Windows 10 in 8.1
  • V sistemih Windows 10 in 8.1 omogočite stiskanje NTFS v mapi WinSxS

Kot morda ugibate, se bo imenik WinSxS sčasoma stalno povečeval, njegova velikost pa ni omejena z ničemer (čeprav v praksi velikost mape WinSxS v sistemu Windows 10 / 8.1 le redko presega 15-20 GB.)

Najbolj naraven način za zmanjšanje velikosti mape WinSxS v sistemih Windows 10 in Windows 8 je odstranitev starih različic komponent, ki ostanejo po posodobitvi sistema, iz sistema. Če želite to narediti, uporabite standardnega čarovnika za disk cleanmgr ali posebne možnosti ukazov DISM (glejte spodaj).

Namig. V operacijskem sistemu Windows 7 SP 1 je možnost brisanja starih posodobitvenih datotek za čiščenje diska na voljo šele po namestitvi ločene posodobitve - KB 2852386.

Kako ugotoviti resnično velikost mape WinSxX v operacijskem sistemu Windows 10 / 8.1

Druga značilnost mape WinSxS je prisotnost velikega števila t.i. težko povezave (trde simbolične povezave). Trda povezava je popolnoma enaka izvirnemu kazalcu datoteke. I.e. kazalec in izvorna datoteka imata lahko različna imena in se nahajata v istem razdelku v različnih imenikih, v resnici pa bodo kazali na isti objekt. Zaradi trdih povezav, ki so vključene v izračun celotne velikosti imenika, upravitelji datotek (vključno z Windows Explorerjem) kažejo nekoliko pretirano velikost mape WinSxS. Resnično (brez trdih povezav) velikosti mape WinSxS lahko ugotovite s pomočjo pripomočka SysInternal du:

 du -v c: \ windows \ winSXS

Z ukazom DISM lahko analizirate tudi velikost pomnilnika komponent (mapa WinSxS):

Dism.exe / Online / Cleanup-Image / AnalyzeComponentStore

Ugotovimo, kaj ta ukaz vrne:

Velikost prostora za shranjevanje komponent glede na Explorer: 5,70 GB (to je velikost pomnilnika brez trdih povezav)
Dejanska velikost prodajalne komponent: 5,49 GB (dejanska velikost prodajalne komponent, vključno s trdimi povezavami)
Združljivo z Windows: 3,12 GB (zahtevanih sistemskih datotek ni mogoče izbrisati)
Varnostne kopije in onemogočene komponente: 2,12 GB (zastarele komponente komponent, ki so potrebne v primeru težav z nameščenimi posodobitvami)
Predpomnilnik in začasni podatki: 245,87 MB (datoteke se uporabljajo za pospešitev sistema vzdrževanja)
Zadnji očiščen datum: 2018-07-31 12:45:23
Število izdanih paketov: 10 (datoteke, ki so bile posodobljene po namestitvi posodobitev sistema Windows, bodo izbrisane, ko je pomnilnik očiščen)
Priporočljivo čiščenje funkcijskih trgovin: Da

Kot lahko vidite, lahko v tem primeru velikost imenika WinSxS zmanjšate za 2,1 GB + 250 MB.

Za mnoge uporabnike je naravno vprašanje, ali je mogoče ročno izbrisati datoteke iz mape WinSxS. Odgovor na to vprašanje je kategoričen NE! Taka dejanja lahko zelo motijo ​​sistem Windows. Čeprav so nekateri poskusi brisanja datotek iz mape WinSxS morda uspešni, ne morete priporočiti te metode z vidika potencialne nevarnosti za sistem.

Poglejmo si najbolj neškodljive s sistemskega vidika metode čiščenja mape WinSxS v sistemih Windows 10 in Windows 8.1. To je:

  • Odstranjevanje starejših komponent, ki ostanejo po namestitvi posodobitev;
  • Funkcije tehnologije naprej Povpraševanje (deluje na zahtevo), kar vam omogoča, da iz diska odstranite neuporabljene komponente sistema Windows;
  • Stiskanje datotek v mapo WinSxS - način zmanjšanja velikosti imenika WinSxS zaradi stiskanja NTFS njegove vsebine.

Za dosego največjih rezultatov lahko vse tri metode uporabimo skupaj..

Čiščenje skladišča komponent (mape WinSxS) v sistemu Windows 10 / 8.1

Po mojem mnenju je najhitrejši in najlažji način čiščenja prostora za shranjevanje komponent (tj. Brisanje mape WinSxS) z brisanjem starih različic komponent izvedba ukaza:

Dism.exe / Online / Cleanup-Image / StartComponentCleanup


Možnost / StartComponentCleanup ima dodatno možnost. / Ponastavitev, ki vam omogoča, da odstranite vse prejšnje različice komponent (po tem ne boste mogli odstraniti nameščenih posodobitev ali servisnega paketa, gumb "Delete" pa izgine na plošči za posodobitve appwiz.cpl). Celoten ukaz izgleda tako:

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

Prav tako lahko odstranite zastarele posodobitve iz čarovnika za čiščenje diska. Zaženite ukaz cleanmgr s skrbniškimi pravicami.

V oknu s pripomočki izberite pogon in v naslednjem oknu kliknite gumb "Počisti sistemske datoteke".

Nato izberite možnost »Datoteke dnevnikov za posodobitev sistema Windows« in kliknite V redu, da začnete s čiščenjem. Pomožni program Čiščenje diska bo pokazal, koliko prostora lahko sprostite, tako da izbrišete dnevniške datoteke starih posodobitev sistema Windows..

Po čiščenju pomnilnika s sistemom DISM preverite, koliko prostega prostora je na voljo..

Poleg tega ima planer Windows 10 posebno nalogo samodejnega vzdrževanja, ki izvede isto operacijo kot dism s tipko StartComponentCleanup in odstrani vse zastarele posodobitve, starejše od 30 dni. Ta naloga je imenovana StartComponentCleanup ki se nahaja pod \ Microsoft \ Windows \ Servisiranje.

Funkcije na zahtevo v sistemih Windows 10 in 8.1

V članku "Varno brisanje mape WinSxS v operacijskem sistemu Windows Server 2012" smo preučili funkcijo Značilnosti naprej Povpraševanje (funkcije na zahtevo), ki omogoča brisanje binarnih datotek neuporabljenih vlog iz imenika WinSxS. Obstaja poseben Powershell cmdlet za odstranjevanje neuporabljenih vlog z diska. - Odstranite-WindowsFeature. Vendar v primeru Windows 10 in 8.1 ni vse tako preprosto. Dejstvo je, da v teh različicah Windows manjka cmdlet Uninstall-WindowsFeature. Funkcije in zahteve na zahtevo se izvajajo samo z uporabo DISM ali ukazne plošče DISM PowerShell. Poleg tega je pomembno vedeti, da ukaz DISM za razliko od cmdleta Uninstall-WindowsFeature ne analizira odvisnosti paketov med seboj. Ko odstranite paket Windows s sistemom DISM, se izbriše samo komponenta, navedena v ukazu, in vsi paketi, ki so odvisni od nje, ostanejo v sistemu. Zaradi tega ne smete uporabljati DISM za odstranitev vlog s diska v sistemu Windows Server 2012, ker obstaja veliko bolj priročno in funkcionalno orodje.

Popoln seznam razpoložljivih funkcij na sliki Windows 10 / 8.1 lahko dobite z ukazom:
DISM.exe / Spletna / Slovenščina / Get-Features / Format: Tabela

Denimo, da je komponenta Telnetclient v prihodnosti tega ne potrebujemo. Odstranite to komponento s diska (v bistvu iz imenika WinSxS) z ukazom:
DISM.exe / Online / Onemogoči-Lastnost / Ime funkcije: TelnetClient / Remove

Če znova navedete vse razpoložljive funkcije na zahtevo v sistemu Windows, boste videli, da se stanje komponente spremeni v Invalidi s Obremenitev Odstranjeno.

Tako lahko v operacijskem sistemu Windows znatno zmanjšate velikost mape WinSxS tako, da iz diska izbrišete neuporabljene komponente. Edino opozorilo je, da je možnost čiščenja imenika WinSxS primerna za dovolj napredne uporabnike, ki razumejo komponente sistema Windows 10 in njihov namen.

V sistemih Windows 10 in 8.1 omogočite stiskanje NTFS v mapi WinSxS

Drug način za zmanjšanje velikosti imenika WinSxS v sistemu Windows 10 / 8.1 je stiskanje vsebine imenika na ravni datotečnega sistema NTFS..

Opomba. Kot pri vseh drugih nestandardnih posegih v sistemsko konfiguracijo je zelo priporočljivo izvesti popolno varnostno kopijo sistema.
  1. Odprite ukazni poziv s skrbniškimi pravicami;
  2. Ustavite in onemogočite storitve Windows Installer in Windows Module Installer:
    sc stop msiserver sc stop TrustedInstaller sc config msiserver start = onemogočen sc config TrustedInstaller start = onemogočen
  3. Varnostno kopirajte dostopne sezname (ACL), dodeljene datotekam in mapam v direktoriju WinSxS, s pomočjo pripomočka icacls. Rezervna kopija ACL je navadna besedilna datoteka, ki vsebuje vse datoteke in mape ter dovoljenja, ki jim jih je dodelil NTFS (ta varnostna kopija bo v prihodnosti potrebna za obnovitev izvirnih ACL-jev):
    icacls "% WINDIR% \ WinSxS" / shrani "% WINDIR% \ WinSxS_NTFS.acl" / t

  4. Določimo si lastnika mape WinSxS in vseh poddirektorjev:
    takeown / f "% WINDIR% \ WinSxS" / r
  5. Podarite svojemu računu popolne pravice v imeniku WinSxS:
    icacls "% WINDIR% \ WinSxS" / odobri "% USERDOMAIN% \% USERNAME%" :( F) / t
  6. Z ukazom stisnite direktorij WinSxS in vso njegovo vsebino kompakten. Nekatere datoteke lahko sistem uporablja, tako da če zaženete ukaz brez možnosti / i, se stiskanje ustavi na prvi datoteki, ki jo trenutno uporablja sistem. S pomočjo Process Explorerja lahko najdete ime postopka, ki je odprl datoteko (CTRL + F) in jo zaključil. Ta pristop stiskanja je zelo zamuden. Omejili se bomo samo na stiskanje neuporabljenih datotek (v sistemu Windows 10 lahko uporabite naprednejše stiskanje LZX):
    compact / s: "% WINDIR% \ WinSxS" / c / a / i *

  7. Obnovite lastnika imenika WinSxS tako, da vrnete TrustedInstaller:
    icacls "% WINDIR% \ WinSxS" / setowner "NT SERVICE \ TrustedInstaller" / t
  8. Obnovite izvirna dovoljenja NTFS v imenik WinSxS iz varnostne kopije ACL: icacls "% WINDIR%" / obnovi "% WINDIR% \ WinSxS_NTFS.acl"
  9. Obnovite vrsto zagona storitev Windows Installer in Windows Module Installer:
    sc config msiserver start = povpraševanje sc config TrustedInstaller start = povpraševanje

Preverite trenutno velikost imenika WinSxS:

Kot lahko vidite, se je v našem primeru velikost mape WinSxS zaradi stiskanja zmanjšala od 5.8 GB do 4 GB (približno tretjino). Ni slabo, še posebej za majhen SSD-pogon, mesto na katerem je precej drago.

Kaj lahko stisne WinSxS imenik.

Windows deluje s stisnjenimi datotekami v preglednem načinu, vendar bo pri obdelavi takšnih datotek morda potreben dodaten čas, da jih razstavite / stisnete, kar pomeni nekaj upočasnitve namestitve komponent ali posodobitev sistema Windows. Vendar se pri sodobnih procesorjih (CPU) stiskanje / dekompresija datotek izvaja skoraj v trenutku, zato uporabnik morda niti ne opazi resničnega zmanjšanja hitrosti. Ne le to, če je trdi disk počasen in procesor dovolj hiter - tudi s stiskanjem lahko opazite povečanje hitrosti dela s pogonom! Ko omogočite stiskanje ntfs celotne vsebine mape WinSxS, se bo zaradi uporabe trdih povezav stisnilo več datotek v drugih sistemskih imenikih..

Te ukaze lahko izvajate ločeno (lažje je nadzorovati uspeh vsakega od njih) ali pa združite vse operacije v eni datoteki skripta, ko se bo začel postopek stiskanja podatkov v mapi WinSxS. Končano datoteko serije lahko prenesete tukaj: stisniti_winsxs.bat

Ta skript je mogoče med delovanjem sistema nenehno uporabljati, ker Po namestitvi novih posodobitev in programov se v imeniku WinSxS pojavijo nove »nekomprimirane« datoteke.

Opomba. Še en skript se sprehaja po omrežju, kar vam omogoča, da zmanjšate velikost mape WinSxS -   WinSxSLite (od Christian Bering Boegh). Ta skript po podatkih razvijalca išče najnovejše knjižnične datoteke na disku in ustvarja povezave do njih iz vseh prejšnjih različic ter briše nepomembne različice. Menimo, da je potrebno naše bralce odvrniti od uporabe skripta WinSxSLite, ker Kljub dokaj smiselni zamisli je rezultat njegove izvedbe nepredvidljiv, in del zmanjšanja velikosti imenika WinSxS kljub funkciji Windows preneha delovati.