Windows systeembestanden verkleinen
Systeembestanden minder plek laten innemen
Een Windows-installatie gaat in de loop der tijd steeds meer plek innemen. Dit komt niet alleen doordat je steeds meer programma's installeert en bestanden verzamelt, maar ook Windows zelf dijt uit. Als je het aandurft, kun je de ingenomen schijfruimte gedeeltelijk weer terug claimen.
Updates, de back-ups van systeembestanden, geïnstalleerde drivers en nog veel meer zorgen ervoor dat een Windows-installatie na verloop van tijd steeds meer schijfruimte inneemt. Dit kun je voor een deel echter terugschroeven als je niet bang bent om aan systeembestanden te knutselen en het werken met de Opdrachtprompt en commandlineopdrachten niet eng vindt. Wat voorkennis is handig, bijvoorbeeld hoe je in Verkenner verborgen systeembestanden tevoorschijn haalt en hoe je Opdrachtprompt met administratorrechten opent. En het is bij een aantal situaties zo dat je alleen wat ruimte erbij krijgt door wat functies te moeten missen.
We waarschuwen je dus maar even. Het verkleinen van systeembestanden is dus niet een klusje wat je 'even tussendoor' doet. Het is makkelijker om meer ruimte vrij te maken met Schijfopruiming en onze andere tips in de voorgaande twee artikelen.
In dit artikel gaan we het specifiek hebben over schijfruimtevreters die onderdeel zijn van Windows en niet simpel met Schijfopruiming weg te halen zijn. Je vindt deze bestanden (zoals we in het vorige artikel beschreven) door het zoekveld van Verkenner en de tool Windirstat te gebruiken om je systeemschijf te doorzoeken. Het kan zomaar dat je zoekopdracht geen resultaten geeft. De meeste ruimtevretende bestanden worden pas na langere tijd zo groot of blijven van acceptabel formaat. We herhalen nogmaals de tip uit het vorige artikel om vooral niet je tijd te verspillen aan kleine bestanden: een paar kB winst hier en daar is echt zonde van je tijd.
Wisseltruc
Een specifiek bestand valt vrijwel meteen op: hij staat in de root van C en is een van de grootste bestanden van een Windowsinstallatie. We hebben het over de swapfile oftewel pagefile.sys. Dit bestand wordt door Windows gebruikt als tussenstation voor gegevens waar in het werkgeheugen geen ruimte meer voor is. Dit bestand is ook op pc's met veel werkgeheugen nog steeds onmisbaar, want als het geheugen toch onverhoopt een keer volloopt maakt dit het verschil tussen 'Windows is wat traag' en 'Windows is niet meer vooruit te branden'. Programma's die flinke hoeveelheden data verschuiven kunnen bovendien crashen als er geen swapfile aanwezig is. Het bestand heeft nog een rol bij crashes: het is verantwoordelijk voor het aanmaken van een crashdump, wat weer een handig hulpmiddel is bij de probleemanalyse.
De swapfile kun je dus niet zomaar weggooien. Zelfs al probeer je dat via een creatieve route, bij de volgende keer opstarten staat hij weer op dezelfde plek. Wel is het bestand kleiner te maken. Vaak heeft dat weinig nut, want dan krijg je weer last van de zonet beschreven problemen. Als Windows last krijgt van een te krappe systeemschijf wordt de swapfile automatisch verkleind als dat zinvol is. Laat Windows vooral zelf de grootte van het bestand bepalen. Het besturingssysteem weet zelf het beste hoeveel plek het bestand in moet nemen en hoeveel het kan krimpen indien nodig.
Wat wel een optie is, mits je voldoet aan de eisen qua hardware, is de swapfile (of het grootste deel) naar een andere plek verhuizen. Veel gebruikers hebben een kleinere ssd als systeemschijf, maar een flinke harde schijf voor data-opslag. Dat is dan een goede plek om het bestand te parkeren. Je hoeft niet bang te zijn dat je pc er trager door wordt. Vergeleken met de snelheid waarmee je werkgeheugen zijn werk doet, zijn zowel ssd's als harde schijven zo langzaam dat het verschil tussen deze twee niks uitmaakt. Of anders gezegd: als de snelheid van de schijf waar de swapfile op staat daadwerkelijk een merkbaar performanceverlies oplevert, is de enige manier om dat op te lossen het simpelweg aanschaffen en inbouwen van meer werkgeheugen.
Om de swapfile naar een andere plek te verhuizen moet je gebruikersaccount administratorrechten hebben. Druk de toetsen Windows+Pauze in, klik links op 'Geavanceerde systeeminstellingen' en daarna op de bovenste 'Instellingen'-knop. Op het tabblad 'Geavanceerd' is de grootte aan te passen via 'Wijzigen'. Haal daarvoor eerst het vinkje weg voor 'Wisselbestandsgrootte voor alle stations automatisch beheren'. Selecteer de schijf waar je het bestand vanaf nu wilt neerzetten, zorg dat 'Grootte wordt door het systeem beheerd' geselecteerd staat en klik op 'Instellen'. Daarna moet je uitvogelen hoeveel aan pagefile-bestand op de C: moet blijven. Die informatie krijg je boven water als je schijf C: kiest, 'Geen wisselbestand' selecteert en op 'Instellen' klikt. Er verschijnt een melding in beeld die onder andere aangeeft wat Windows als minimale grootte voor het bestand wenselijk acht. Klik de melding weg en kies voor 'Aangepaste grootte'. Typ bij 'Begingrootte' en 'Maximale grootte' de waarde in die Windows net als minimale grootte aangaf en klik weer op 'Instellen'. Na een herstart gebruikt Windows de nieuwe instellingen.
Hiberfil.sys
In de root van de C:\ staat normaliter ook een bestand met de naam hiberfil.sys. Hierin legt Windows de inhoud van je werkgeheugen vast wanneer de pc in de sluimerstand gaat (Suspend to Disk, S4). Om die reden ontbreekt het bestand als je de sluimerstand niet ingeschakeld hebt. Je kunt het bestand niet verplaatsen. Onder Windows 10 zijn er drie opties dankzij de 'Snel opstarten'-optie. Als je je pc afsluit via 'Slaapstand' worden alle programma's afgesloten maar gaat het besturingssysteem in slaapstand. Daarvoor gebruikt het ook hiberfil.sys, maar dat bestand hoeft dan niet zo heel groot te zijn.
Dat kun je instellen met de onboard commandlinetool powercfg.exe. Open eerst een Opdrachtprompt met administratorrechten of een Powershell met dezelfde rechten. Dit geldt voor alle hierna genoemde commandline-opdrachten. Met de volgende commando's configureer je hiberfil.sys:
powercfg -h off
schakelt de sluimerstand uit en
powercfg -h on
zet de optie weer aan. Het is bij Windows 10 mogelijk om de grootte van het bestand wat naar beneden te schroeven. Dan werkt snel opstarten nog wel, maar de sluimerstand niet:
powercfg -h -type reduced
Om de sluimerstand weer aan te zetten, stel je de grootte weer in op volledig:
powercfg -h -type full
In de rootmap van C: staat overigens ook nog het bestand swapfile.sys. Dat bestand is meestal vrij klein. Het wordt alleen gebruikt voor tegel-apps. Als je zo'n app afsluit, zet Windows de app slechts in een slaapstand en wordt swapfile.sys als een cache gebruikt.
In een aantal gevallen kom je in de rootmap nog een cachebestand tegen met de naam winpepge.sys. Standaard staat dit er niet. Als je het ziet staan, is dat een overblijfsel van de installatie van je pc door de fabrikant. Dit proces draait onder een mini-Windows met de naam Windows PE en het bestand winpepge.sys dient daarbij tijdelijk als swapfile. Nadat het proces wordt afgesloten, moet dat bestand weer verwijderd worden. Mocht dat niet zijn gebeurd, kun je dat alsnog doen (simpelweg verwijderen via Verkenner) en zo een halve GB aan schijfruimte terugwinnen.
Windows\Installer
De map C:\Windows\Installer kan zeer veel ruimte in beslag nemen en daar valt slechts zelden wat aan te doen. Deze map bevat alle installatiepakketten van programma's, updates en patches die Windows daar laat staan omdat ze mogelijk nog nodig zijn. Een voorbeeld: een programma gaat een functie pas installeren zodra je er de eerste keer op klikt. Aangezien het meestal niet duidelijk is wanneer een programma of Windows zelf een bepaald pakket nodig heeft en wat er gebeurt als het niet meer op zijn plek staat, moet je hier niet zomaar dingen gaan weggooien.
Wat je wel kunt doen, is programma's die erg veel plek in beslag nemen achterhalen en dan een vervangend programma zoeken dat niet zo veel ruimte inneemt. De namen van de in de map rondslingerende installatiepakketten helpen je helaas niet veel, want meestal zijn ze nogal cryptisch. Maar je kunt snel een eerste indruk krijgen wat waarbij hoort door in Verkenner de detail-weergave aan te zetten en via een van de kolommen het snelmenu te openen. Via die route kun je extra kolommen toevoegen. Kies voor 'meer' onderaan en daarna voor 'Onderwerp'. Daarna verschijnt bij een groot aantal pakketten in ieder geval een minimale beschrijving.
Winsxs
In de Windows-map staat de map winsxs die gigabytes groot lijkt te zijn en waarover veel geruchten de ronde doen. Sla niet meteen fanatiek aan het verwijderen, want dan trek je je hele Windows-installatie onderuit. Dat komt omdat in de map winsxs bestanden staan die Windows hard nodig heeft. Microsoft noemt het de 'Component Store'. Hier staan de bestanden in die bijvoorbeeld bij het activeren van Windows-functies worden gebruikt, bij het aanpassen van de editie (bijvoorbeeld van Home naar Pro of Pro naar Enterprise) of die fouten met betrekking tot systeembestanden repareren. Als twee programma's dezelfde systeembibliotheek gebruiken, maar elk weer hun eigen versie, staan die meestal hier. Als de bestanden uit de Component Store bijgewerkt worden door een update van Windows of door de installatie van een nieuw programma, bewaart Windows de oude versies. Dit voor het geval dat programma's of Windows zelf ze nog gaan gebruiken. Daardoor wordt de map na verloop van tijd steeds groter.
Zodra je de map wat beter onder de loep neemt, zie je al snel dat daar kopieën van diverse bestanden in lijken te staan die ook op andere plekken op de schijf te vinden zijn. Maar dat is slechts schijn. Een voorbeeld: dezelfde versie van het bestand calc.exe, oftewel de ingebouwde rekenmachine van Windows, is zowel te vinden in C:\Windows\System32 als diep vertakt in C:\Windows\WinSxS\amd64_ microsoft-windows-calc_31bf3856ad364 e35_10.0.16299.15_none_ccaa2d2d8be06 b27. De freeware-tool FindLinks van Mark Russinovich (live.sysinternals.com) pluist echter uit, dat het bestand in werkelijkheid slechts één keer op de schijf staat. Wat Verkenner aangeeft, zijn slechts twee hardlinks die naar het bestand verwijzen. Daardoor haalt het niks uit om de 'kopieën' weg te halen. Je haalt daarmee alleen een hardlink weg die slechts een paar kB groot is.
Wat wel nog wat ruimte bespaart, is de af en toe (als er niets te doen is) draaiende ingeplande taak die op de achtergrond niet meer benodigde bestanden uit de map WinSxS opschoont. Alles wat minder dan 30 dagen geleden is bijgewerkt laat hij daarbij met rust. Alles wat Windows Update zelf heeft vervangen blijft ook buiten schot. Mocht je deze taak zelf handmatig willen starten: dat kan. Open een Opdrachtprompt of PowerShell met administratorrechten en typ daar het volgende in:
schtasks.exe /Run /TN "\Microsoft\
Windows\Servicing\ StartComponentCleanup"
Sinds Windows 10 kun je nog meer doen, dankzij de commandline-tool dism. Het al openstaande venster kun je gebruiken voor de volgende opdracht:
Dism.exe /online /Cleanup-Image
/StartComponentCleanu
Dit voert in principe hetzelfde uit als de geplande taak, maar wist ook bestanden die minder dan 30 dagen geleden zijn vervangen door recentere versies. Als je nog een stapje radicaler te werk wilt gaan, is er het volgende commando:
Dism.exe /online /Cleanup-Image
/StartComponentCleanup /ResetBase
Dit wist alle vervangen versies van bestanden en ook die bestanden die door Windows Update zijn vervangen. Let op: het uitvoeren van dit commando kan gemiddeld een uur of langer duren. Hoeveel effect het heeft hangt af van de leeftijd van de installatie. Het kan variëren van een paar MB tot honderden MB's.
SoftwareDistribution
Zodra Windows Update iets downloadt, belandt dat eerst in een download-map in C:\Windows\SoftwareDistribution. Deze kun je zonder zorgen opruimen, want hier blijven alleen af en toe wat vergeten bestanden in achter.
Zorg er wel voor dat Windows Update ook na een reboot geen nieuwe updates meer vindt en wil installeren. Open nu weer net als eerder een Opdrachtprompt of PowerShell met administratorrechten en typ:
net stop wuauserv
De downloadmap wordt daarna wel weer gevuld, maar voor een korte tijd neemt hij behoorlijk wat minder ruimte in.
Drivers
Drivers opruimen kan meerdere GB's aan schijfruimte opleveren. In de root van je schijf staan bijvoorbeeld vaak installatiemappen met de namen van fabrikanten als Intel, Nvidia, Brother en dergelijke. Dit zijn resten die zijn achtergebleven na een installatie van drivers. Deze mappen zijn overbodig en kun je wissen. Als je het op safe wilt spelen, kun je een kopie maken op een andere schijf.
Om hardware die je nog moet aansluiten in de toekomst makkelijk te kunnen installeren, houdt Windows een driververzameling bij. Deze staat in C:\Windows\ System32\Driverstore. Hier staan ook bestanden die de op dit moment geïnstalleerde drivers gebruiken. De map neemt gemiddeld een paar GB aan ruimte in beslag. Dit is terug te dringen met hulp van de commandline-tool pnputil.
Bij Windows 10 kun je voor de zekerheid alle drivers back-uppen naar een externe schijf. Om dit te doen, open je eerst
een Opdrachtprompt of PowerShell met administratorrechten. Daarin typ je dan:
pnputil /export-driver * e:\driverbak
De map e:\driverbak moet wel al aanwezig zijn, dus maak deze van tevoren aan. Waar je hem neerzet en welke mooie creatieve naam je er aan geeft maakt niet uit. Het enige wat belangrijk is, is dat er op die plek voldoende ruimte is om alles te stallen.
Via de volgende handelingen krijg je een overzicht van de aanwezige drivers:
pnputil /e
Je ziet nu een overzicht van diverse drivers (/e staat voor enum-drivers) die als naam het standaard 'oem1.info' hebben, waarbij het getal in de naam kan variëren. Controleer wat de drivers met de hoogste getallen zijn, zodat je meteen weet bij welk getal je weer kunt stoppen met het wissen van drivers. Nu kun je starten met het wissen van drivers, wat slechts één voor één kan worden uitgevoerd.
pnputil /d oem1.inf
Het commando wist de eerste driver (/d staat voor delete), maar misschien ook niet als hij op dat moment in gebruik is. Dan weigert Windows dat met een bijbehorende foutmelding. Ook de eigen drivers van Windows voor standaardapparaten zoals toetsenborden, usb-schijven, smartphones of usb-audiosticks blijven beschermd. Als je daarna op de pijltje-omhoog-toets drukt, scheelt je dat weer veel typwerk. Je hoeft dan alleen maar het getal aan te passen in de naam van het .inf-bestand:
pnputil /d oem2.inf
Dat blijf je net zolang herhalen tot het infbestand met het hoogste nummer dat je tegenkwam is bewerkt. Daarna ben je ongeveer een GB aan schijfruimte rijker.
Voor het geval Windows later bij het aansluiten van nieuwe hardware geen passende drivers kan vinden via Windows Update, kun je bij Windows 10 de geëxporteerde drivers weer importeren. Dit regel je via het commando:
pnputil /a e:\driverbak\*.inf
En ook nog
Het kan zijn dat je in je Windows-installatie nog wat grote brokken tegenkomt, maar daar moet je voor het merendeel met je handen vanaf blijven. Zo is mrt.exe het uitvoerbare bestand voor Windows' eigen Defender. Daarbij hoort ook het bestand mpavbase.vdm. Daar staan dan de virusdefinities in.
In het bestand datastore.edb houdt Windows bij welke updates er al geïnstalleerd zijn. Dat bestand verwijderen om ruimte te winnen is niet aan te raden. Er is soms wel een goede reden om dat te doen, namelijk als Windows Update bokt. Dan is het tijd voor drastische maatregelen, waarbij ook datastore.edb van de schijf wordt geveegd. Een oplossing voor een haperende update is de pc een keer handmatig updaten via de Windows Update-website. Mocht er iets niet goed gaan, check dan het logbestand C:\Windows\WindowsUpdate.log. Eventuele foutcodes kun je dan simpelweg door Google halen. Mocht het toch een hardnekkig probleem zijn: deactiveer (met administratorrechten) de service voor automatische updates en de Background Intelligent Transfer Service (BITS). Daarna verwijder je de complete map C:\Windows\SoftwareDistribution. Zodra je de services weer opstart, maakt Windows die map weer opnieuw aan.
In de WinSxS-map staat een bestand dat eindigt op blobs.bin. Dit bestand dient als cache voor de verschillende acties van Windows Update. De naam blob staat voor Binary Large Object. De grootte wisselt tussen de paar MB en vele GB's. Dat bestand kun je zonder zorgen verwijderen. Windows maakt het weer opnieuw aan, maar dan kleiner. Het verwijderen gaat niet zomaar. Zelfs al staat je gebruikersaccount in de groep administrators, dan heb je toch niet voldoende rechten. De eenvoudigste manier om het te verwijderen is via een Opdrachtprompt met administratorrechten met het onderstaande commando:
takeown /f c:\windows\winsxs\
manifestcache\* icacls c:\windows\winsxs\
manifestcache\* /grant administratoren:f del c:\windows\winsxs\manifestcache\* Met het eerste commando neem je het eigenaarschap van het bestand over. Het tweede geeft je volledige toegang en met het derde verwijder je het bestand.
Voor overige grote hoeveelheden data die je tijdens het struinen tegenkomt, geldt telkens het bekende credo: niet verwijderen als je niet precies weet wat het is. Mocht je zelfs na het eens flink opschonen nog ruimte nodig hebben, lees dan eerst het volgende artikel door. Daarin staan nog meer tips.