Optimaliseren van het register, de registereditor, registerbestanden, registertweaks en het achterhalen van registerwijzigingen

Deze pagina geeft uitleg over het register: over de opbouw (met registersleutels en –waarden), het optimaliseren door middel van defragmenteren en cleanen, het aanbrengen van wijzigingen met de register-editor. Windows maakt gebruik van een register om instellingen van Windows zelf, die van de diverse hard- en software en die van de gebruikersaccounts (de persoonlijke instellingen) in op te slaan. Je kunt het zo gek niet verzinnen of het wordt wel in het register opgeslagen! Het register wordt ingelezen bij het opstarten van Windows en het gebruikersaccount en wordt bij vrijwel alle daaropvolgende handelingen geraadpleegd.


De opbouw van het register: registersleutels

Het register is opgebouwd uit vele registersleutels en registerwaarden. Voor het navi-geren naar en wijzigen van specifieke sleutels en waarden beschikt Windows over de register-editor (te openen met het commando REGEDIT in de zoekfunctie van Windows). De register-editor toont de boomstructuur zoals het register is opgebouwd. Deze boomstructuur is vergelijkbaar met die van de Windows Verkenner: de registersleutels zou je kunnen zien als de ‘mapjes’, de registerwaarden de ‘bestanden’ en de gegevens in een registerwaarde de ‘inhoud van het bestand’. De register-editor opent met de vijf hoofdsleutels waaronder alle overige registersleutels en registerwaarden zijn opgeslagen (welbeschouwd zijn HKCR, HKCU en HKCC subsleutels van HKLM en HKU):

Register-editor REGEDIT

TIP: Via de adresbalk bovenin de editor kan de locatie van de actieve registersleutel (met de toetscombinatie Ctrl-C) naar het klembord worden gekopieerd. Andersom kan de locatie van een registersleutel ook vanuit een website (of het SchoonePC e-boek!) naar de adresbalk worden gekopieerd (mits er geen spatie in staat) zodat snel naar een specifieke sleutel wordt genavigeerd. Handig om te weten is dat de registereditor de afkortingen voor de hoofdvertakkingen (HKCR, HKCU enz.) herkent!

Registerwaarden (tekenreeks-, DWORD-, QWORD en binaire waarde)

Omdat de in de registerwaarden opgeslagen gegevens verschillend van aard kunnen zijn, worden er verschillende typen registerwaarden gehanteerd. De belangrijkste typen registerwaarden (inclusief het label in kolom Type):

BITS, BYTES, BINAIRE, DECIMALE EN HEXADECIMALE GETALLEN

Elke bit stelt een binair getal voor die de waarde 0 óf 1 kan hebben. Elke byte bestaat uit 8 bits (8 eentjes en nulletjes), en heeft dus 256 mogelijke waarden (28=2*2*2*2*2*2*2*2=256). Deze 256 mogelijkheden zijn voldoende voor de weergave van alle benodigde tekens (zoals a-z, A-Z, 0-9 en andere symbolen). Bij een tekenreekswaarde wordt elk teken dus opgeslagen in één byte van 8 bits.

Aangezien er met 4 bits 16 verschillende combinaties gemaakt kunnen worden (24=2*2*2*2=16), kunnen deze eenvoudig worden weergegeven met een hexadecimaal getal. Dit is een getal uit het zestientallige stelsel, weergegeven met de reeks: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A (=10), B (=11), C (=12), D (=13), E (=14), F (=15). Zo staat de hexadecimale waarde E voor de binaire waarde 1110, het equivalent van de decimale waarde 14 (1*23+1*22+1*21+0*20 = 1*8+1*4+1*2+0*1=14). Aangezien één byte uit 8 bits bestaat, kan deze worden weergegeven met 2 hexadecimale getallen. De bitreeks 11101111 kan zodoende eenvoudig worden weergegeven met de hexadecimale waarde EF (decimale waarde: 14*16+15=239).

Voor een DWORD-waarde wordt gebruikgemaakt van 4 bytes (aangezien er 8 bits in één byte zitten betreft het een 32-bits getal). De maximale decimale DWORD-waarde is 4.294.967.295=232-1 (oftewel de makkelijker leesbare hexadecimale weergave: FFFFFFFF). Er is overigens ook een 64-bits DWORD-waarde. Ook een binaire waarde wordt voor de leesbaarheid weergegeven in hexadecimale getallen, bijvoorbeeld "2F D7 0A 28 9C 00 2E 33".


De opslaglocatie van de registerwaarden

De registerwaarden worden weggeschreven naar bestanden die bij het opstarten van de computer worden ingelezen. De registerwaarden die systeemspecifieke gegevens bevatten (HKLM), worden weggeschreven naar bestanden in de map C:\WINDOWS\system32\config. Het gaat daarbij om bestanden met namen zoals DEFAULT, SAM, SECURITY, SOFTWARE en SYSTEM. De accountspecifieke instellingen (HKCU) worden weggeschreven naar het bestand NTUSER.DAT in de persoonlijke map (C:\Gebruikers\inlognaam). Om deze bestanden te kunnen zien, moet in de Windows Verkenner (Windows 11: via de knop Meer informatie, optie Opties; Windows 10: via Opties, tabblad Weergave) de optie Beveiligde besturingssysteembestanden verbergen (aanbevolen) worden uitgevinkt.

Zoeken in het register

Aangezien het register ontzettend veel registerwaarden bevat, is het ondoenlijk handmatig op zoek te gaan naar specifieke waarden (zoals alle vermeldingen van je naam, adres, etc.). Met de zoekfunctie (Bewerken, Zoeken of met de toetscombinatie Ctrl-F) kunnen de gezochte registerwaarden echter snel worden achterhaald. Met de toets F3 kan de zoektocht worden hervat nadat de eerste waarde is gevonden.

Registeroptimalisatie: defragmenteren en cleanen

Tijdens het werken op de computer worden er continu wijzigingen in het register aan-gebracht. Na verloop van tijd raakt het Windows-register vervuild met onnodige regis-terwaarden en lege ruimtes (ontstaan door het constant toevoegen en weer verwijderen van registerwaarden). Volgens de theorie legt een vervuild register een groter beslag op de kostbare systeembronnen waardoor de computer minder goed presteert.

Defragmenteren van het register

Door het register te defragmenteren kunnen de lege ruimtes worden verwijderd, wat resulteert in een kleiner register én een besparing op de kostbare systeembronnen. In tegenstelling tot wat nog wel eens wordt beweerd, is het (al dan niet regelmatig) defragmenteren van het Windows-register niet zinvol. In de praktijk blijkt namelijk dat Windows dit heel goed zelf kan managen.

Cleanen van het register

Omdat het register op den duur vervuild raakt met onnodige registerwaarden, wordt vaak geadviseerd deze zo nu en dan eens op te schonen. Velen cleanen daarom met grote regelmaat het register, gemotiveerd door de hoeveelheid overbodige items die na elke schoonmaakbeurt weer worden gevonden. In de praktijk geeft het de gebruiker echter alleen een goed gevoel en is er van snelheidswinst maar weinig te merken. Sterker nog: omdat de vele cleanprogramma's elkaar beconcurreren op het aantal gevonden én opgeloste items, ontstaan er in de praktijk meer problemen dan dat er opgelost worden. Je bent dus gewaarschuwd!

TIP: Is er een systeemback-up voor handen, dan kan Windows in zijn geheel worden hersteld (inclusief register) en zijn cleanprogramma’s eigenlijk overbodig.

Registertweaks: het register handmatig bewerken

Het register wordt zeer frequent benaderd voor het uitlezen en/of wijzigen van registerwaarden. Deze registerbewerkingen zijn essentieel voor het naar behoren functioneren van het besturingssysteem en andere programma's. Worden er onjuiste wijzigingen doorgevoerd, dan kunnen er grote problemen ontstaan (waaronder het niet meer opstarten van Windows). Vandaar dat er regelmatig wordt gewaarschuwd dat het aanbrengen van wijzigingen in het register voor eigen risico is (zo ook op deze website...).

Het kan namelijk erg lastig zijn een eenmaal verwijderde (of gewijzigde) registerwaarde te herstellen naar de oorspronkelijke waarde wanneer daar vooraf geen back-up van is gemaakt. Men heeft echter de neiging de risico's groter te doen laten voorkomen dan dat ze in werkelijkheid zijn. Zolang er geen onbedoelde wijzigingen in registersleutels en/of registerwaarden worden doorgevoerd, is er namelijk niet veel aan de hand (enkele uitzonderingen daargelaten...). Sterker nog: veel sleutels en waarden kunnen worden verwijderd zonder dat daarmee daadwerkelijk problemen ontstaan. Wees echter voorzichtig en ga altijd behoedzaam te werk!

Welke registersleutels en registerwaarden zijn interessant om te tweaken?

Blader gewoon eens door de registersleutels en ga op zoek naar de functionaliteit van de daarin aanwezige registerwaarden. Het is vaak niet eens zo lastig te achterhalen waar een specifieke registerwaarde voor wordt gebruikt, de belangrijkste registersleutels en registerwaarden zijn namelijk wel ergens op internet gedocumenteerd (even googlen dus!). Zo blijkt bijvoorbeeld dat in de registersleutel HKCU\Software de instellingen van diverse software (voor het betreffende gebruikersaccount) zijn opgeslagen. Hier staan dus verwijzingen naar de fabrikanten van de diverse (ooit) geïnstalleerde software (waaronder ook een map voor de software van Microsoft).

Slechts een beperkt aantal registersleutels zijn interessant genoeg voor het toepassen van registertweaks. De interessantste registersleutels zijn:

TIP: Gebruik de optie Favorieten om vaak geraadpleegde registersleutels vast te leggen (deze lijst met registeravorieten wordt in het register opgeslagen in de registersleutel HKCU\Software\ Microsoft\Windows\CurrentVersion\ Applets\Regedit\Favorites). De registereditor onthoudt overigens de laatst gebruikte registersleutel, zodat deze direct wordt geopend bij het opnieuw opstarten van de registereditor.

Maak eerst een back-up van het register

Voor de zekerheid kan beter eerst een back-up worden gemaakt van de registersleutels waarin wijzigingen zullen worden aangebracht. Treden er onverhoopt problemen op, dan kan de back-up weer worden teruggezet waardoor de wijzigingen in het register teniet worden gedaan.

Het maken van de back-up gaat als volgt: selecteer een registersleutel in de registereditor en stel de onderliggende registerwaarden (via Bestand, Exporteren) veilig in een bestand met de extensie REG. Dergelijke bestanden zijn uit te lezen met een simpele teksteditor zoals Kladblok. Het importeren van REG-bestanden in het register gaat op vergelijkbare wijze met de optie Importeren of vanuit de Windows Verkenner door op het betreffende bestand te dubbelklikken.

Registerwaarden wijzigen en/of toevoegen

Het wijzigen van een registerwaarde is eenvoudig: navigeer via de registersleutels (in het linker venster van de register-editor) naar een specifieke registerwaarde (in het rechter venster) en open deze met een dubbelklik. Naar gelang het type (Tekenreeks, DWORD, Binair, etc.) wordt het bijbehorende venster geopend en kan de betreffende registerwaarde worden gewijzigd. Het aanmaken van een registerwaarde is ook eenvoudig: navigeer naar de gewenste registersleutel, klik met rechts in het rechter venster, kies Nieuw (of via de menubalk Bewerken, Nieuw) en voer de gewenste waarde in. Er kan direct een naam aan de nieuwe waarde worden gegeven (de naam kan in een later stadium altijd nog worden gewijzigd via Bewerken, Naam wijzigen). Door op de nieuwe registerwaarde te dubbelklikken, kan deze van gegevens worden voorzien.

Machtigingen

Het toewijzen van de machtigingen (volledig beheer, alleen lezen of speciale machtigingen) is eenvoudig en vergelijkbaar met de manier waarop dat in de Windows Verkenner wordt toegepast. Machtigingen kunnen in de registereditor worden aangebracht door met rechts op een sleutel te klikken en te kiezen voor Machtigingen. Specifieke registersleutels kunnen via de registereditor van speciale machtigingen worden voorzien waardoor onderliggende registerwaarden niet zomaar door een andere gebruiker kunnen worden gewijzigd.

Heeft een account met beperkte rechten geen toegangsrechten (lees- en/of schrijfrechten) tot een specifieke maar essentiële registersleutel, dan is het toekennen van machtigingen een praktische oplossing: het betreffende account hoeft hierdoor niet als volledige administratoraccount te worden ingesteld. Het gaat echter te ver om het gebruik van machtigingen uitgebreid te behandelen, mede omdat er doorgaans maar weinig gebruik van wordt gemaakt.

Werken met registerbestanden

Registerwaarden kunnen voor back-updoeleinden worden opgeslagen in een registerbestand met de extensie REG. Het lezen van deze bestanden kan met een eenvoudige teksteditor zoals Kladblok. Het is met behulp van een teksteditor echter ook mogelijk wijzigingen door te voeren in een REG-bestand, met als doel (op een later tijdstip) wijzigingen door te voeren in het register.

TIP: Betreft het een back-upbestand, maak dan wel eerst een kopie!

Op het internet zijn zeer veel registertweaks gedocumenteerd die met een registerbestand kunnen worden doorgevoerd. Onderstaand voorbeeld toont de inhoud van een dergelijk registerbestand met de registeraanpassing voor het niet langer automatisch toevoegen van de tekst - Snelkoppeling aan een nieuw aangemaakte snelkoppeling.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\ Microsoft\Windows\ CurrentVersion\Explorer]
"link"=hex:00,00,00,00

De eerste regel geeft aan dat het om een registerbestand gaat. De registersleutels zijn te herkennen aan de rechthoekige haken ( [ en ] ). De daaronder vermelde regels bevatten de te wijzigen en/of toe te voegen registerwaarden onder de betreffende registersleutel (in dit voorbeeld betreft het een binaire waarde). Let erop dat de registersleutels en registerwaarden elk afzonderlijk slechts één regel in beslag nemen!

TIP: Het is ook mogelijk registersleutels en registerwaarden met behulp van een registerbestand te verwijderen. Door een minteken te plaatsen na de rechte haak (dus: [-HKEY...) wordt een gehele registersleutel (inclusief de onderliggende registerwaarden) verwijderd. Specifieke registerwaarden worden verwijderd door een minteken na het isgelijkteken te plaatsen (bijvoorbeeld: "link"=-).

Kopieer de regels naar Kladblok, sla het op in een bestand met de extensie REG (bijvoorbeeld snelkoppeling.reg) en voeg de waarden toe aan het register door op het bestand te dubbelklikken in de Windows Verkenner. Bestaan de genoemde waarden al in het register, dan worden ze overschreven. De registerwaarde wordt met het uitvoeren van het registerbestand permanent gewijzigd (in dit geval is het alleen wel noodzakelijk dat het gebruikersaccount wordt afgemeld en opnieuw wordt aangemeld). De aanpassing moet in dit geval voor elke gebruikersaccount afzonderlijk worden uitgevoerd omdat de registersleutels beginnen met HKEY_CURRENT_USER (de sleutel waarin de accountspecifieke instellingen worden opgeslagen). Wordt het registerbestand bewaard, dan kan het later nog eens voor een andere gebruikersaccount of PC worden gebruikt.

TIP: Een registerbestand wordt met een dubbelklik op het bestand in de Windows Verkenner eenvoudig aan het register toegevoegd. Deze methode heeft als nadeel dat er tweemaal moet worden geklikt om akkoord te gaan. Dit kan worden omzeild door een batchbestand (bijvoorbeeld snelkoppeling.bat) aan te maken waarmee deze vragen worden onderdrukt. Plaats daarvoor de commandoregel REGEDIT.EXE /s snelkoppeling.reg  via de teksteditor in een nieuw bestand met de extensie BAT (snelkoppeling.reg verwijst in dit voorbeeld naar het eerder aangemaakte registerbestand):

REGEDIT.EXE /s snelkoppeling.reg

VOORBEELD HANDMATIG AANGEMAAKTE  REGISTERBESTANDEN

Onderstaand voorbeeld toont het handmatig samengestelde registerbestand voor het verbergen van de map OneDrive (in de navigatiestructuur van de Windows Verkenner) en het uitschakelen van OneDrive (in het systeemvak van Windows):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\ShellFolder]
"Attributes"=dword:f090004d

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\ShellFolder]
"Attributes"=dword:f090004d

[HKEY_LOCAL_MACHINE\SOFTWARE\ Policies\Microsoft\Windows\OneDrive]
"DisableFileSyncNGSC"=dword:00000001

Het volgende voorbeeld toont de inhoud van het registerbestand voor de tweak met de dubbele schijfletters. Merk op dat vóór elke te verwijderen registersleutel een minteken is geplaatst (handmatig vanuit Kladblok) om aan te geven dat deze sleutels, inclusief onderliggende registersleutels en -waarden, uit het register verwijderd moeten worden.

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]

[-HKEY_LOCAL_MACHINE\SOFTWARE\ WOW6432Node\Microsoft\Windows\
CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]


Het traceren van registerwijzigingen

Met het wijzigen van registerwaarden is het dus mogelijk aanpassingen aan te brengen in de instellingen van Windows, hardware en de geïnstalleerde software. Door deze wijzigingen eerst in een registerbestand op te slaan, kunnen ze met enkele klikken worden doorgevoerd in het register. Deze handelswijze is met name handig wanneer wijzigingen op meerdere computers moeten worden doorgevoerd, zodat veel herhaald zoek- en klikwerk wordt bespaard.

Het probleem is echter de juiste bij een specifieke wijziging van een instelling behorende registeraanpassing te traceren. Het is namelijk niet altijd even eenvoudig te achterhalen waar de verschillende waarden in het register zijn opgeslagen. Er zijn vijf methoden (waarvan de eerste twee al zijn besproken):

Registerwijzigingen zoeken met RegScanner

RegScanner (download: www.nirsoft.net/utils/regscanner.html) is een fijne tool om het register te doorzoeken. Net als bij de zoekfunctie van de registereditor kan specifiek in registersleutels, registerwaarden en/of registergegevens worden gezocht. RegScanner is echter veel uitgebreider, deze tool bevat verschillende opties om nog explicieter te kunnen zoeken. Zo kan hoofdlettergevoelig worden gezocht (optie Case Sensitive), kunnen binaire registerwaarden worden doorzocht op tekst (optie Search for Unicode string in binary values), kunnen registervertakkingen van de zoekresultaten worden uitgesloten (Exclude the following keys from the Registry scan) en kunnen registeraanpassingen worden getraceerd die binnen een specifiek tijdsinterval hebben plaatsgevonden (Display only keys that their modified time is within the following range). Vooral deze laatste optie maakt RegScanner interessant.

Nadat de scanopties zijn ingesteld en het register met de knop Scan is doorzocht, worden alle registervermeldingen die aan de zoekopdracht voldoen overzichtelijk in één venster getoond (zie onderstaande afbeelding). Met een rechter muisklik zijn extra functies toegankelijk, zoals het opvragen van de eigenschappen van de registerwaarde (optie Properties) en het naar het klembord kopiëren van de registersleutel (optie Copy Key). Wil je een van de resultaten nader onderzoeken, dubbelklik er dan op zodat deze automatisch in de gebruikelijke registereditor wordt geopend (de registereditor is ook handmatig te openen met het commando RegEdit in de zoekfunctie).

Realtime monitoren van registerwijzigingen met Process Monitor

Nadat de Sysinternals-tool Process Monitor (download: https://docs.microsoft.com/nl-nl/sysinternals/downloads/procmon) is opgestart, vliegen de op dat moment uitgevoerde registerbewerkingen al over het scherm (het is niet voor niets realtime). Wordt deze tool voor de eerste keer opgestart, dan is het veelal overweldigend om te zien wat er allemaal gaande is. Het programma monitort namelijk zowel wijzigingen in het register als in het bestandssysteem en de lopende processen. Door het toepassen van een filter kan de grote stroom aan informatie gelukkig snel worden gereduceerd tot enkel de nuttige informatie. Zo is in onderstaand voorbeeld het aantal gebeurtenissen van 19.000 (in enkele minuten!) teruggebracht tot 17.

Process Monitor voor het traceren van register wijzigingen

Door op de knop Capture Events (knop 1 of Ctrl-E) te klikken, wordt het realtime monitoren gestart dan wel gestopt. Met de naastliggende knop Auto Scroll (knop 2 of Ctrl-A) kan het automatisch scrollen van het scherm worden opgeheven of weer in gang gezet. De inmiddels getoonde events kunnen met de knop Clear Display (knop 3 of Ctrl-X) worden verwijderd zodat met een schone lei kan worden begonnen. Volg onderstaand stappenplan om de gewenste registerwijzigingen snel te vinden:

Stap 1: Het monitoren beperken tot registerbewerkingen

Hoewel slechts een korte periode wordt gescand, worden er te veel waarnemingen getoond om een specifiek event gemakkelijk terug te kunnen vinden. Het is dus zaak een filter toe te passen. Deactiveer hiervoor de bestandswijzigingen en de procesactiviteiten met de knoppen Show File System Activity en Show Process and Thread Activity (knoppen 5 en 6). Hierdoor resteren de op het register toegepaste activiteiten (zoals het toekennen en verwijderen van registerwaarden en registersleutels maar ook het opvragen van registerwaarden en het openen, doorzoeken en sluiten van registersleutels).

Stap 2: Het filteren van irrelevante registerbewerkingen

Vervolgens kunnen een groot aantal irrelevante registerbewerkingen met behulp van de knop Filter (knop 4 of Ctrl-L) uit de zoekresultaten worden weggefilterd. Voeg hiervoor de volgende filterregels toe (afzonderlijk bevestigd met de knoppen Add en Apply):

Operation is RegOpenKey then Exclude
Operation is RegCloseKey then Exclude
Operation is RegQueryKey then Exclude
Operation is RegQueryValue then Exclude
Operation is RegEnumKey then Exclude
Operation is RegEnumValue then Exclude

Deze filterregels hebben betrekking op het openen, doorzoeken, uitlezen en sluiten van registersleutels en registerwaarden. Het toevoegen van dergelijke filterregels is echter redelijk arbeidsintensief. Gelukkig kunnen deze filterregels ook op een praktische manier worden toegevoegd door met rechts op een van de betreffende events te klikken en achtereenvolgens te kiezen voor Exclude en de optie Operation (op basis van de kenmerken van één event worden hierdoor tevens de vergelijkbare events verborgen).

Stap 3: De gezochte registerwaarde tonen in de registereditor

De gezochte registerwaarde kan vervolgens eenvoudig in de registereditor worden weergegeven door in Process Monitor met rechts op een event te klikken en te kiezen voor Jump To, waarop de registereditor automatisch op deze locatie wordt geopend. Vanuit de registereditor kan de registersleutel weer heel gemakkelijk worden geëxporteerd naar een registerbestand.

TIP: Via Options, Enable Boot Logging kunnen de diverse bij het opstartproces van Windows gemaakte register- en bestandsbewerkingen worden getraceerd.

TIP: Klik met rechts op een event in de Process Monitor en kies voor Stack om te achterhalen welke processen en threads die specifieke registerwaarde aanpassen. De waarde in kolom PID staat voor Proces ID waarmee in Windows Taakbeheer (Ctrl-Shift-Esc) of Process Explorer (eveneens van Sysinternals) het betreffende proces kan worden achterhaald.

© 2001-2024 - - SchoonePC - Rotterdam - Privacyverklaring