V tem članku bomo govorili o WinSxS mapo v sistemu Windows, razloge za njeno stalno rast in načine za njeno čiščenje. The C:\Windows\WinSxS imenik je skladišče komponent sistema Windows. Ta imenik vsebuje datoteke DLL, binarne datoteke in datoteke XML, potrebne za namestitev in delovanje različnih vlog ali funkcij sistema Windows. Pri nameščanju posodobitev sistema Windows (običajno se to zgodi vsak mesec) se v sistem namesti nova različica posodobljene komponente, stara ena se shrani v mapo WinSxS (potrebno je zagotoviti združljivost in omogočiti povrnitev na prejšnje različice komponent, ko ti odstranite posodobitev sistema Windows).
Imenik WinSxS se je sčasoma povečal. Poleg tega njegova velikost ni omejena z ničemer (čeprav v praksi velikost mape WinSxS v sistemu Windows 10 redko presega 15-20 GB).
![seznam datotek v winsxs v sistemu Windows 10](/f/74b73eaa9520aba9a2611e9a594dbd83.webp)
Vsebina:
- Kako preveriti dejansko velikost mape WinSxS v sistemu Windows 10?
- Kako počistiti shrambo komponent (mapa WinSxS) v sistemu Windows?
- Odstranite neuporabljene vloge in funkcije iz sistema Windows 10/Windows Server
- Kako omogočiti stiskanje NTFS v mapi WinSxS v sistemu Windows 10?
V tem članku bomo preučili najvarnejše načine za čiščenje mape WinSxS v sistemih Windows 10 in Windows Server 2016/2019:
- Optimizirajte skladišče komponent in odstranite stare različice komponentnih datotek sistema Windows, ki so ostale po namestitvi posodobitev sistema Windows;
- Funkcije na zahtevo – omogoča odstranitev neuporabljenih komponent sistema Windows z diska;
- Omogoči stiskanje NTFS v mapi WinSxS – način za zmanjšanje velikosti imenika WinSxS z uporabo vgrajenega stiskanja datotečnega sistema NTFS.
Mnogi uporabniki se pogosto sprašujejo: ali je mogoče ročno izbrisati datoteke iz mape WinSxS? Odgovor je kategoričen št! Ta dejanja lahko poškodujejo sliko sistema Windows. Čeprav so lahko nekateri poskusi odstranitve datotek iz mape WinSxS uspešni, te metode ni mogoče priporočiti.
Kako preveriti dejansko velikost mape WinSxS v sistemu Windows 10?
Najlažji način za pridobitev trenutne velikosti mape WinSxS v sistemu Windows je, da odprete lastnosti %windir%\WinSxS
mapo v File Explorerju (ali uporabite a Skript PowerShell). Vendar ne pozabite, da večina upraviteljev datotek (vključno z raziskovalcem datotek) prikazuje nekoliko večjo velikost mape WinSxS, kot je na disku.
Dejstvo je, da imenik WinSxS vsebuje veliko število trde povezave (simbolične povezave) do sistemskih datotek v drugih mapah. Upravitelji datotek pri izračunu velikosti mape WinSxS upoštevajo velikost datotek, na katere se sklicujejo trde povezave, vendar to ni pravilno.
Dejansko velikost mape WinSxS na disku lahko ugotovite z uporabo du orodje podjetja Sysinternals: du -v c:\windows\winSXS
Z ukazom DISM lahko analizirate tudi velikost shrambe komponent (mapa WinSxS):
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
![dism analizira shrambo komponent - poroča o dejanski velikosti mape winsxs](/f/d2b7b65e214791743397e346c155a2d5.webp)
Deployment Image Servicing and Management tool. [100.0%] Component Store (WinSxS) information: Windows Explorer Reported Size of Component Store: 8.44 GB. Actual Size of Component Store: 8.15 GB. Shared with Windows: 5. 74GB. Backups and Disabled Features: 1.97 GB. Cache and Temporary Data: 438.31 MB. Date of Last Cleanup: 2021-02-22 20:37:29. Number of Reclaimable Packages: 1. Component Store Cleanup Recommended: Yes. The operation completed successfully.
Kot lahko vidite, lahko v tem primeru zmanjšam velikost mape WinSxS za (1,97 + 0,44) Gb.
DISM /Online /Cleanup-Image /RestoreHealth
Kako počistiti shrambo komponent (mapa WinSxS) v sistemu Windows?
Najhitrejši in najlažji način za brisanje Windows Component Store (mape WinSxS) je optimizacija pomnilnika z ukazom:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup
![shramba komponent clenup winsxs z Dism StartComponentCleanup](/f/79785fb9c1ca2ec12f8fe77d735a2697.webp)
The StartComponentCleanup
Možnost DISM je podprta v vseh različicah sistema Windows od Windows 8 do Windows Server 2012.
Ko je čiščenje končano, preverite trenutno velikost shrambe komponent:
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
V mojem primeru je to zmanjšalo velikost mape WinSxS za 2,4 GB.
The /StartComponentCleanup
možnost ima dodatno /ResetBase možnost, ki vam omogoča, da odstranite vse prejšnje različice komponent, ki so ostale po namestitvi posodobitev sistema Windows. Po tem ne boste več mogli odstraniti nameščenih posodobitev ali servisnih paketov in Odstrani gumb bo izginil iz Odstranite posodobitev element nadzorne plošče). Če želite počistiti stare različice komponent, zaženite:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
DISM /online /Cleanup-Image /spsuperseded
Stare posodobitvene datoteke lahko odstranite tudi z uporabo »Čiščenje diska” čarovnik:
- Zaženite
cleanmgr
ukaz kot skrbnik; - Izberite disk in v naslednjem oknu kliknite »Očistite sistemske datoteke” gumb;
- Nato izberite »Čiščenje posodobitve sistema Windows” možnost. Orodje za čiščenje diska bo pokazalo, koliko prostora lahko sprostite z brisanjem starih posodobitvenih datotek sistema Windows. V mojem primeru je to 324 MB. Za začetek čiščenja kliknite V redu.
Ko končate s čiščenjem shrambe komponent z DISM, preverite, koliko prostora na disku je bilo sproščenega.
Poleg tega ima razporejevalnik opravil Windows 10/Windows Server 2016 posebno nalogo samodejnega vzdrževanja, ki redno optimizira in čisti mapo WinSxS (enaka operacija kot DISM z StartComponentCleanup parameter). to StartComponentCleanup opravilo se nahaja v razdelku \Microsoft\Windows\Servicing v taskschd.msc
. Ta naloga se izvaja v ozadju in samodejno odstrani različice komponent, starejše od 30 dni, ki so jih nadomestile novejše datoteke.
To nalogo lahko začnete ročno takole:
schtasks.exe /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup"
![Naloga StartComponentCleanup](/f/c1bd64b7d40dfc34f06ed908c3096939.webp)
Odstranite neuporabljene vloge in funkcije iz sistema Windows 10/Windows Server
Funkcije na zahtevo v sistemu Windows omogoča odstranitev binarnih datotek neuporabljenih vlog iz mape WinSxS. Binarne datoteke vlog in funkcij v sistemu Windows Server lahko odstranite z uporabo Uninstall-WindowsFeature PoweShell cmdlet.
Windows 10 nima cmdleta Uninstall-WindowsFeature in morate uporabiti DISM.exe, da odstranite funkcije iz slike sistema Windows.
Upoštevajte, da DISM za razliko od Uninstall-WindowsFeature
PowerShell cmdlet, ne odstrani odvisnih funkcij.
Celoten seznam razpoložljivih funkcij v sliki sistema Windows 10 lahko dobite z ukazom:DISM.exe /Online /English /Get-Features /Format: Table
Če želite na primer odstraniti TelnetClient funkcijo iz slike Windows (iz mape WinSxS), zaženite ukaz:DISM.exe /Online /Disable-Feature /Featurename: TelnetClient /Remove
Če prikažete seznam vseh funkcij na zahtevo, ki so na voljo v sistemu Windows, boste videli, da se je stanje komponente spremenilo v Onemogočeno z odstranjenim tovorom.
Tako Windows omogoča znatno zmanjšanje velikosti mape WinSxS z odstranitvijo neuporabljenih komponent z diska. Edina stvar je, da je ta način čiščenja primeren le za napredne uporabnike, ki poznajo funkcije sistema Windows 10 in njihov namen.
Kako omogočiti stiskanje NTFS v mapi WinSxS v sistemu Windows 10?
Drug način za zmanjšanje velikosti imenika WinSxS v sistemu Windows 10 je stiskanje vsebine imenika na ravni datotečnega sistema NTFS.
- Odprite ukazni poziv kot skrbnik;
- Ustavi in onemogoči Windows Installer in Windows Module Installer storitve:
sc stop msiserver
sc stop TrustedInstaller
sc config msiserver start= disabled
sc config TrustedInstaller start= disabled - Varnostno kopirajmo sezname za nadzor dostopa (ACL), dodeljene datotekam in mapam v imeniku WinSxS, z uporabo vgrajenega icacls orodje. Varnostna kopija ACL je datoteka z navadnim besedilom, ki navaja vse datoteke in imenike ter dovoljenja NTFS, ki so jim dodeljena (kasneje bo ta datoteka potrebna za obnovitev izvirnih ACL):
icacls "%WINDIR%\WinSxS" /save "%WINDIR%\WinSxS_NTFS.acl" /t
- Določite se za lastnika mape WinSxS in vseh njenih podmap:
takeown /f "%WINDIR%\WinSxS" /r
- Dodelite svojemu računu dovoljenja za popoln nadzor nad imenikom WinSxS:
icacls "%WINDIR%\WinSxS" /grant "%USERDOMAIN%\%USERNAME%":(F) /t
- Zdaj lahko stisnete datoteke v imeniku WinSxS z uporabo kompakten ukaz. Ker lahko nekatere datoteke uporablja Windows, morate določiti
/i
možnost. V nasprotnem primeru se bo stiskanje ustavilo pri prvi zaklenjeni datoteki (v sistemu Windows 10 lahko uporabite naprednejše stiskanje LZX):compact /s:"%WINDIR%\WinSxS" /c /a /i *
- Obnovite lastnika imenika WinSxS nazaj v TrustedInstaller:
icacls "%WINDIR%\WinSxS" /setowner "NT SERVICE\TrustedInstaller" /t
- Obnovite izvirne ACL-je za elemente mape WinSxS z varnostno kopijo ACL, ki ste jo ustvarili prej:
icacls "%WINDIR%" /restore "%WINDIR%\WinSxS_NTFS.acl"
- Obnovite privzeto vrsto zagona za storitve Windows Installer in Windows Module Installer:
sc config msiserver start= demand
sc config TrustedInstaller start= demand
Zdaj preverite trenutno velikost mape WinSxS:
![kako prihraniti hitrost v mapi winsxs v sistemu Windows 10?](/f/ddf56068069b9cde25ef58abd99edc77.webp)
Kot lahko vidite, se je v našem primeru velikost mape WinSxS po stiskanju zmanjšala 9,4 GB do 6,5 GB (približno tretjina). Ni slabo, še posebej za SSD disk majhne velikosti.
Te ukaze je mogoče zagnati ločeno (takrat je veliko lažje slediti rezultatom vsakega od njih) ali uporabiti v eni datoteki skripta. Če ga zaženete, se bo začel opisan postopek stiskanja elementov v mapi WinSxS. Tukaj lahko prenesete paketno datoteko, pripravljeno za uporabo, da omogočite stiskanje NTFS v WinSxS: winsxs_ntfs_compress.bat
Ta skript lahko uporabljate redno, ker se nove nestisnjene datoteke prikažejo v mapi WinSxS, ko namestite nove posodobitve ali aplikacije za Windows.
Na kaj lahko vpliva stiskanje mape WinSxS? Windows deluje pregledno s stisnjenimi datotekami. Vendar pa lahko pri obdelavi takšnih datotek potrebuje dodaten čas procesorja, da jih razpakira/stisne. To lahko povzroči rahlo upočasnitev pri nameščanju komponent ali posodobitev sistema Windows. Vendar se na sodobnih procesorjih stiskanje/dekompresija datotek izvede skoraj v trenutku, tako da uporabnik morda sploh ne opazi dejanskega vpliva na zmogljivost.