Abrufen des Werts eines Registrierungsschlüssels mithilfe von PowerShell

  1. Was ist ein Registrierungsschlüssel
  2. Sichern von Registrierungsschlüsseln in PowerShell
  3. Abrufen eines Werts eines Registrierungsschlüssels mit dem Cmdlet Get-ItemProperty in PowerShell
  4. Abrufen eines Werts eines Registrierungsschlüssels mit dem Cmdlet Get-ItemPropertyValue in PowerShell
Abrufen des Werts eines Registrierungsschlüssels mithilfe von 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
Hinweis
Bitte stellen Sie sicher, dass Sie den Registrierungspfad in doppelte Anführungszeichen ("") 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 Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Verwandter Artikel - PowerShell Registry