Abrufen des Werts eines Registrierungsschlüssels mithilfe von PowerShell
- Was ist ein Registrierungsschlüssel
- Sichern von Registrierungsschlüsseln in PowerShell
-
Abrufen eines Werts eines Registrierungsschlüssels mit dem Cmdlet
Get-ItemProperty
in PowerShell -
Abrufen eines Werts eines Registrierungsschlüssels mit dem Cmdlet
Get-ItemPropertyValue
in PowerShell
Es gibt Fälle, in denen Sie die Windows-Registrierung bearbeiten müssen, um Fehler zu beheben, Windows-Funktionen zu optimieren oder Software oder ein Produkt vollständig zu deinstallieren.
Auch wenn die Verwendung des Registrierungseditors bequem sein kann, kann dennoch ein Fehler auftreten, wenn wir nicht vorsichtig genug sind. Das Bearbeiten der Registrierung ist sehr heikel und Ihr lokales System ist davon abhängig.
Dieser Artikel zeigt Ihnen, wie Sie mit Windows PowerShell sicher Registrierungsschlüsselwerte abrufen.
Was ist ein Registrierungsschlüssel
Ein Registrierungsschlüssel kann ein bisschen wie ein strukturierter Dateiordner betrachtet werden, aber er existiert nur innerhalb der Windows-Registrierung.
Darüber hinaus können Registrierungsschlüssel auch Registrierungswerte enthalten, genau wie Ordner Dateien enthalten. Registrierungsschlüssel können auch andere Registrierungsschlüssel enthalten, die normalerweise als Unterschlüssel bezeichnet werden.
Wie bereits erwähnt, ist die Windows-Registrierung strukturiert, wobei die obersten Registrierungsschlüssel als Registrierungsstrukturen bezeichnet werden. Diese gelten als spezielle Registrierungsschlüssel mit besonderen Berechtigungen, haben aber dennoch die gleiche wesentliche Funktion wie ein Standardregistrierungsschlüssel.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
Wenn wir das obige Beispiel nehmen, ist HKEY_LOCAL_MACHINE
oder kurz HKLM
der Anfang des Pfades der Registrierung. Der Registrierungsschlüssel SOFTWARE
folgt ihm dann, und wie bereits erwähnt, können Registrierungsschlüssel weitere Schlüssel enthalten, die wir Unterschlüssel wie Microsoft
nennen.
Sichern von Registrierungsschlüsseln in PowerShell
Es ist ratsam, unsere Registrierung zu sichern, bevor wir Änderungen vornehmen. Wie bereits erwähnt, kann jede versehentliche Änderung in der Registrierung einen Fehler in Ihren Dateien, Ihrer Software oder noch schlimmer im gesamten Betriebssystem verursachen.
Mit einer Kopie der Schlüssel, die Sie ändern, können Sie sich jedoch sicher fühlen, dass Sie alle Änderungen rückgängig machen können, die zu Problemen in Ihrem Betriebssystem führen könnten.
Wir können die Legacy-Befehle reg export
verwenden, um Ihre Registrierung schnell zu sichern. Die folgende Syntax sichert beispielsweise die gesamte HKLM
-Registrierung.
reg export HKLM C:\RegBack\HKLM.Reg /y
Ihre gesicherten Registrierungsschlüssel werden im Dateiformat .REG
exportiert. Daher können Sie gesicherte Registrierungsschlüssel schnell wiederherstellen, indem Sie auf die Registrierungsdatei doppelklicken und den Eingabeaufforderungen folgen.
Abrufen eines Werts eines Registrierungsschlüssels mit dem Cmdlet Get-ItemProperty
in PowerShell
Das Get-ItemProperty
ist ein PowerShell-Cmdlet, das verwendet wird, um Registrierungseinträge in einem besser lesbaren Format als der entsprechende Befehl Get-Item
zurückzugeben. Wir können auch den Wert eines bestimmten Registrierungsschlüssels mit dem Cmdlet Get-ItemProperty
abrufen.
Beispielcode:
$registryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion"
Get-ItemProperty -Path $registryPath -Name ProgramFilesDir
Ausgabe:
ProgramFilesDir : C:\Program Files
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Micr
osoft\Windows\CurrentVersion
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Micr
osoft\Windows
PSChildName : CurrentVersion
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
""
) setzen, da einige Registrierungspfade Leerzeichen enthalten. Das Einschließen des Pfads in doppelte Anführungszeichen nimmt den wörtlichen Ausdruck des besagten Pfads und führt nicht zu einem Fehler.Der Befehl erstellt ein PSCustomObject
-Objekt mit PsPath
, PsParentPath
, PsChildname
, PSDrive
, PSProvider
und einer weiteren Eigenschaft, die nach dem Namen des Schlüsselwerts benannt ist.
Um also nur den tatsächlichen Wert des Registrierungsschlüssels auszugeben, können wir die Eigenschaft key value name in unserem Skript aufrufen.
Beispielcode:
$registryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion"
$keyValue = Get-ItemProperty -Path $registryPath -Name ProgramFilesDir
$keyValue.ProgramFilesDir
Ausgabe:
C:\Program Files
Der Befehl Get-ItemProperty
funktioniert auf den PowerShell-Versionen 2 bis 5. Allerdings hat Microsoft in Windows PowerShell 5 ein neues Cmdlet eingeführt, das das Drucken von Registrierungsschlüsseln in der Befehlszeile viel einfacher macht.
Abrufen eines Werts eines Registrierungsschlüssels mit dem Cmdlet Get-ItemPropertyValue
in PowerShell
Wie bereits erwähnt, wird das Cmdlet Get-ItemPropertyValue
in Windows PowerShell Version 5 eingeführt, um die Abfrage zum Abrufen des Werts von Registrierungsschlüsseln auf viel kürzere und einfachere Weise zu adressieren.
Das Cmdlet benötigt nur zwei Parameter, um zu funktionieren: den Registrierungsdateipfad und den Registrierungsschlüssel, der nach einem Wert abgefragt werden muss.
Beispielcode:
Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion' 'ProgramFilesDir'
Ausgabe:
C:\Program Files
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn