{"id":11775,"date":"2026-02-14T15:05:04","date_gmt":"2026-02-14T15:05:04","guid":{"rendered":"https:\/\/howtogeek.blog\/nl\/?p=11775"},"modified":"2026-02-14T15:05:04","modified_gmt":"2026-02-14T15:05:04","slug":"hoe-registerwaarden-op-te-halen-met-powershell","status":"publish","type":"post","link":"https:\/\/howtogeek.blog\/nl\/hoe-registerwaarden-op-te-halen-met-powershell\/","title":{"rendered":"Hoe registerwaarden op te halen met PowerShell"},"content":{"rendered":"<p>Het werken met registerwaarden in Windows voelt vaak alsof je een vreemde taal probeert te ontcijferen. Sommige registersleutels zijn verborgen achter complexe lagen en weten wat je in PowerShell moet uitvoeren is niet altijd voldoende, vooral niet als je problemen wilt oplossen of processen wilt automatiseren. Het is behoorlijk frustrerend als de commando&#8217;s om deze waarden op te halen niet werken zoals je verwacht of foutmeldingen geven die je niet begrijpt. Deze handleiding is dan ook een verzameling van methoden die ik nuttig heb gevonden om betrouwbaar registerinformatie te extraheren, zelfs als de zaken er vreemd uitzien. Na wat experimenteren met deze methoden kun je registervermeldingen controleren, opvragen of gewoon even bekijken zonder hoofdpijn. De sleutel is begrijpen wanneer en waarom elke methode werkt, want soms is het eenvoudigste commando juist degene die faalt en moet je van tactiek veranderen. Verwacht een duidelijker inzicht in de registerstructuur, wat handig kan zijn als je opstartitems wilt uitschakelen, de installatiestatus wilt controleren of gewoon vreemd Windows-gedrag wilt oplossen.<\/p>\n<h2>Hoe je registerwaarden in PowerShell kunt ophalen zonder gek te worden<\/h2>\n<h3>Test-Path \u2014 Bestaat dat registerpad wel echt?<\/h3>\n<p>Dit gedeelte is vrij eenvoudig, maar ontzettend handig. De cmdlet van Windows PowerShell <code>Test-Path<\/code>is een soort eerste controle om te zien of een registersleutel of -waarde bestaat voordat je iets complexers probeert uit te voeren. Het is geweldig voor scripts, vooral voor foutafhandeling. In principe voer je een commando uit zoals `$true` <code>Test-Path HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run<\/code>, en als de sleutel bestaat, krijg je <strong>`$true`<\/strong>. Als deze ontbreekt, krijg je <strong>`$false`<\/strong>. Soms bevat het pad spaties of vreemde tekens, dus plaats het pad tussen dubbele aanhalingstekens: `$true`.Ik heb gevallen gezien waarbij een pad technisch correct is, maar PowerShell toch <strong>`$false`<\/strong><code>Test-Path \"HKLM:\\Some\\Really Weird Path\"<\/code> retourneert vanwege ontbrekende machtigingen of typefouten. Desondanks is het een goede eerste stap om te voorkomen dat je script vastloopt of dat je commando&#8217;s uitvoert op niet-bestaande sleutels. Op sommige systemen werkt het niet altijd even soepel, maar over het algemeen helpt het om alles overzichtelijk te houden.<strong><\/strong><\/p>\n<h3>Test-RegistryValue \u2014 Is de gewenste waarde er wel echt?<\/h3>\n<p>Het controleren van een specifieke registerwaarde is niet altijd zo eenvoudig als het bekijken van een pad \u2014 soms gaat het erom of een bepaalde tekenreeks of getal in de sleutel is opgeslagen. De onderstaande functie (die u kunt kopi\u00ebren of aanpassen) helpt daarbij. De reden dat het werkt, is dat het probeert een bepaalde eigenschap (zoals een opstartitem of een configuratievlag) op te halen en u vervolgens vertelt of deze aanwezig is. Het is handig als u bijvoorbeeld wilt controleren of een bepaald programma is ingesteld om bij het inloggen te worden uitgevoerd of dat een bepaalde functievlag is ingeschakeld. De syntax ziet er als volgt uit:<\/p>\n<p> <code><\/p>\n<pre>Function Test-RegistryValue ($regkey, $name) { if (Get-ItemProperty -Path $regkey -Name $name -ErrorAction Ignore) { $true } else { $false } }<\/pre>\n<p><\/code> <\/p>\n<p>Vervang dus <code>$regkey<\/code>door uw registerpad, bijvoorbeeld <strong>HKCU:\\Software\\YourApp<\/strong>, en <code>$name<\/code>door de specifieke waarde waarnaar u op zoek bent, bijvoorbeeld <strong>Enabled<\/strong>. Op de ene computer werkt dit mogelijk direct; op een andere heeft u wellicht sudo- of beheerdersrechten nodig. Het is een beetje vreemd, maar u zult verbaasd zijn hoe vaak deze kleine controle u een hoop kopzorgen bespaart bij het schrijven van scripts of het oplossen van problemen.<\/p>\n<h3>Reg Query \u2014 Commandoregel en PowerShell, eindelijk samen<\/h3>\n<p>Als PowerShell-opdrachten niet voldoende zijn of als je de voorkeur geeft aan de ouderwetse manier, <code>reg query<\/code>is `dump` nog steeds handig. Het is een opdrachtregelprogramma dat de inhoud van een registersleutel weergeeft, waardoor het perfect is voor snelle controles of scripts vanuit batchbestanden. Wanneer je iets uitvoert als `dump` <code>reg query \"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\"<\/code>, worden alle opstartitems onder die sleutel weergegeven. De truc is om te onthouden dat je PowerShell of de opdrachtprompt soms als beheerder moet uitvoeren, vooral als machtigingen de toegang blokkeren. Je kunt het ook in PowerShell verpakken door `dump` te gebruiken <code>Invoke-Expression 'reg query...'<\/code>als dat nodig is. Het is een beetje ouderwets, maar super betrouwbaar om een \u200b\u200benorme lijst te krijgen of gewoon te controleren of een sleutel of waarde correct is ingesteld.<\/p>\n<h3>Get-Item en verwante functies: de kracht van PowerShell voor toegang tot het register.<\/h3>\n<p>Ik ben een groot fan van `Get-ItemPropertyValue` <code>Get-Item<\/code>en `Get-ChildItem` <code>Get-ItemProperty<\/code>, omdat ze een meer menselijke manier zijn om in het register te snuffelen. Er zijn twee belangrijke manieren om waarden op te halen: <strong>`Get-ItemPropertyValue`<\/strong> en <strong>`Get-ChildItem`<\/strong>. Ze geven verschillende soorten informatie, maar beide zijn prima opties.<\/p>\n<h4>Get-ItemPropertyValue \u2014 Eenvoudig en nauwkeurig<\/h4>\n<p>Dit commando is vergelijkbaar met het opvragen van een specifiek gegeven: &#8220;H\u00e9, wat is de waarde van deze registervermelding?&#8221; Als je bijvoorbeeld <strong>Chromium wilt laten opstarten, voer je het volgende commando uit:<\/strong><\/p>\n<p> <code><\/p>\n<pre>Get-ItemPropertyValue -Path HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run -Name Chromium<\/pre>\n<p><\/code> <\/p>\n<p>Als de registerwaarde bestaat, geeft de opdracht de inhoud ervan weer. Zo niet, dan geeft de opdracht een foutmelding, tenzij je deze afhandelt met <code>-ErrorAction<\/code>. Ik heb dit gebruikt wanneer ik snel de waarde wilde hebben, zonder door een heleboel subsleutels te hoeven zoeken.<\/p>\n<h4>Get-ChildItem \u2014 Lijst alle items binnen een registersleutel<\/h4>\n<p>Dit is handig om een \u200b\u200bvolledige lijst van subsleutels of waarden binnen een specifiek registerpad te krijgen. Het werkt als een directorylijst, maar dan voor het register. Voer het als volgt uit:<\/p>\n<p> <code><\/p>\n<pre>Get-ChildItem -Path HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion<\/pre>\n<p><\/code> <\/p>\n<p>Wil je de resultaten verfijnen? Je kunt parameters toevoegen of filteren met <code>-Name<\/code>of <code>-Exclude<\/code>. Bijvoorbeeld om vermeldingen die beginnen met C: te negeren <code>Get-ChildItem -Path HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion -Exclude C*<\/code>..Het ziet er iets netter uit dan de ruwe uitvoer van een reg-query en is op sommige systemen gemakkelijker te interpreteren.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Het werken met registerwaarden in Windows voelt vaak alsof je een vreemde taal probeert te ontcijferen. Sommige registersleutels zijn verborgen achter complexe lagen en weten wat je in PowerShell moet uitvoeren is niet altijd voldoende, vooral niet als je problemen wilt oplossen of processen wilt automatiseren. Het is behoorlijk frustrerend als de commando&#8217;s om deze [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-11775","post","type-post","status-publish","format-standard","hentry","category-how-to"],"acf":[],"_links":{"self":[{"href":"https:\/\/howtogeek.blog\/nl\/wp-json\/wp\/v2\/posts\/11775","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/howtogeek.blog\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/howtogeek.blog\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/howtogeek.blog\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/howtogeek.blog\/nl\/wp-json\/wp\/v2\/comments?post=11775"}],"version-history":[{"count":1,"href":"https:\/\/howtogeek.blog\/nl\/wp-json\/wp\/v2\/posts\/11775\/revisions"}],"predecessor-version":[{"id":11776,"href":"https:\/\/howtogeek.blog\/nl\/wp-json\/wp\/v2\/posts\/11775\/revisions\/11776"}],"wp:attachment":[{"href":"https:\/\/howtogeek.blog\/nl\/wp-json\/wp\/v2\/media?parent=11775"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/howtogeek.blog\/nl\/wp-json\/wp\/v2\/categories?post=11775"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/howtogeek.blog\/nl\/wp-json\/wp\/v2\/tags?post=11775"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}