In dit artikel leer je hoe je PowerShell kunt gebruiken om een registerwaarde op te halen en registersleutels te bevragen met behulp van verschillende methoden.
Laten we beginnen!
Vereisten
Alle voorbeelden in dit artikel worden gedemonstreerd met behulp van PowerShell 7.1, wat op het moment van publicatie van dit artikel de nieuwste versie is. Je kunt ook Windows PowerShell 5.1 gebruiken als je dat wilt. Je moet ook een basiskennis hebben van PowerShell-drives.
Sommige voorbeelden werken mogelijk niet zonder beheerdersrechten.
Registersleutels en -waarden ophalen met Get-ChildItem
Een van de eenvoudigste manieren om registersleutels en -waarden te vinden, is door gebruik te maken van de cmdlet Get-ChildItem
. Hiermee kun je met behulp van PowerShell een registerwaarde en meer ophalen door items in PowerShell-drives op te sommen. In dit geval is die PowerShell-drive de HKLM-drive die wordt gevonden door Get-PSDrive
uit te voeren.
Voer de volgende opdracht uit in een PowerShell-console.
In de onderstaande schermafbeelding zie je:
- Het volledige sleutelpad voor de WindowsUpdate-registersleutel
- De sleutel AU
- De lijst met registersvermeldingen in de AU-sleutel met bijbehorende waarden

Eén snelle opmerking over de bovenstaande schermafbeelding. Je zult merken dat de uitvoer een beetje misleidend is. Normaal gesproken vertegenwoordigt de uitvoer van de PowerShell-console eigenschappen van een object. Get-ChildItem
gedraagt zich in dit geval anders omdat dit object technisch gezien geen eigenschappen heeft. Extra commando’s worden op de achtergrond uitgevoerd om de weergaveopmaak te produceren die je ziet.
Gerelateerd: Hoe controleer je op een uitgestelde herstart in het Windows-register
Het verkrijgen van registerwaarden met Get-ItemProperty
Ga verder met dezelfde registerkey als eerder, laten we dit keer de Get-ItemProperty
cmdlet gebruiken en de uitvoer leesbaarder maken.
Het gebruik van Get-ItemProperty
is het beste om een item-eigenschap te verkrijgen en sleutels met hun waarden binnen het register te verkrijgen. Voer het onderstaande commando uit:
In de onderstaande schermafbeelding zie je een lijst met sleutels en waarden:
- Voor de registercontainer AU
- PowerShell-gerelateerde eigenschappen die allemaal beginnen met PS

Als alternatief kun je ook het register-item-pad specificeren om dezelfde uitvoer iets sneller te krijgen door .NET te gebruiken. Het onderstaande commando gebruikt de .NET Registry Class in PowerShell om een registerwaarde te verkrijgen:
Het verkrijgen van registerwaarden met Get-ItemPropertyValue
Nu is het tijd om naar sleutelwaarden te kijken. Met behulp van de Get-ItemPropertyValue
cmdlet met dezelfde registercontainer als voorheen, laten we eens kijken naar de waarde voor de sleutel NoAutoUpdate
. Voer de volgende PowerShell-opdracht uit:
Met Get-ItemPropertyValue
krijg je een beknoptere uitvoer waarin alleen de waarde wordt weergegeven en niet de andere informatie die je eerder zag.

Register bevragen zonder PS-drives
Gedurende deze handleiding heb je PowerShell-drives gebruikt om met het register te werken. Dit is echter niet de enige manier; je kunt ook .NET gebruiken en registerinformatie verkrijgen via .NET-klassen!
Bijvoorbeeld, misschien moet je PowerShell gebruiken om een registerwaarde van HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\ : AutoUpate op een externe computer te verkrijgen.
Dit kun je doen met .NET door:
- De registerverbinding op de externe computer te openen.
De specifieke registerwaarde te openen waar je naar op zoek bent.
Het GetValue()
-methode gebruiken om de waarde van de registerwaarde binnen de registerkey op te vragen.
Het gebruik van .NET in plaats van PowerShell-drives is iets sneller en is een eenvoudige manier om verbinding te maken met PowerShell en registerkeys en waarden op externe computers te bevragen.
Registerwaarden testen met Test-Path
Soms moet je gewoon valideren of een registerwaarde aanwezig is. Dat doe je met behulp van de Test-Path
cmdlet.
Vervolg met de WindowsUpdate-container, test of de AU-container aanwezig is door de volgende PowerShell-opdracht uit te voeren:
Als het resultaat True is, bestaat de sleutel of container. Maar wat als je een waarde of invoer moet testen? Laten we een aangepaste functie voor deze test maken:
Met de aangepaste functie voer je een pad en naam van de sleutel of container in, en de waarde die je zoekt, en de aangepaste functie zal True of False (3) retourneren zoals weergegeven in de onderstaande screenshot:

Volgende stappen
Weet dat je Get-ChildItem
, Get-ItemProperty
en Get-ItemPropertyValue
in PowerShell kunt gebruiken om een registerwaarde en sleutels te krijgen, wat kun je nog meer doen?
Als je meer wilt leren over werken met het register met PowerShell, bekijk dan het artikel van Microsoft Docs getiteld ‘Werken met registervermeldingen’. Je kunt ook een geweldige demonstratie vinden van het instellen van registerwaarden in de ATA-blogpost Gebruik van Active Setup: Hoe een registerwaarde instellen in alle gebruikerskluizen.
Source:
https://adamtheautomator.com/powershell-to-get-a-registry-value/