So verwenden Sie PowerShell zum Lesen des Registrierungswerts

24. Juni 2021 14116 Ansichten So verwenden Sie PowerShell zum Lesen des Registrierungswerts

In dieser S-Zone bringt Ihnen Victor bei, wie Sie mit PowerShell den Registrierungswert lesen.





Der Leitfaden beginnt damit, Ihnen beizubringen, wie Sie den Registrierungspfad für die Verwendung mit PowerShell formatieren. Sie lernen auch die beste Methode zum Kopieren eines Registrierungsschlüssels zur Verwendung in PowerShell kennen.



Schließlich bietet der Leitfaden 10 Beispiele mit verschiedenen Möglichkeiten, PowerShell zum Lesen von Registrierungswerten zu verwenden.

Der Leitfaden enthält eine Vielzahl von Themen und Beispielen. Wenn Sie ein bestimmtes Thema oder Beispiel lesen möchten, erweitern Sie unten Beitragsthemen durchsuchen und klicken Sie auf das Thema.



Post-Themen durchsuchen



So formatieren Sie Registrierungspfade für PowerShell

So verwenden Sie PowerShell zum Lesen des Registrierungswerts – So formatieren Sie Registrierungspfade für PowerShell

Bevor ich Ihnen beibringe, wie Sie PowerShell zum Lesen von Registrierungswerten verwenden, möchte ich Ihnen beibringen, wie Sie Registrierungspfade für die Arbeit mit PowerShell formatieren.

Die Windows-Registrierung hat 5 Schlüssel der obersten Ebene (Stammschlüssel):



  1. HKEY_LOCAL_MACHINE
  2. HKEY_CURRENT_CONFIG
  3. HKEY_CLASSES_ROOT
  4. HKEY_USERS
  5. HKEY_CURRENT_USER

Um einen Registrierungswert zu lesen, geben Sie den Schlüssel als Pfad in der Get-ItemProperty oder Get-Item Cmdlets. Es gibt zwei Möglichkeiten, den Registrierungspfad zu formatieren:



Mit dem vollständigen Registrierungsschlüsselpfad formatieren

Eingeben Registrierung:: gefolgt vom vollständigen Pfad zur Registrierung. Zum Beispiel angeben HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion , Ich werde benützen Registry::HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion

Mit dem abgekürzten Registrierungsschlüsselpfad formatieren

Sie können auch die Abkürzung des Registrierungsschlüssels der obersten Ebene (Stammschlüssel) gefolgt von einem Doppelpunkt (:) und dann den vollständigen Pfad zum Registrierungsschlüssel (ohne den Stammnamen) eingeben.

Zur Erinnerung, hier sind die Abkürzungen für die Grundtonarten:

HKEY_LOCAL_MACHINE – HKLM
HKEY_CURRENT_CONFIG – HKCC
HKEY_CLASSES_ROOT – HKCR
HKEY_USERS – HKU
HKEY_CURRENT_USER – HKCU

Um den Registrierungspfad anzugeben, HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion mit dieser zweiten Methode wird es geschrieben – HKLM:SOFTWAREMicrosoftWindowsCurrentVersion

Beachten Sie, dass der erste Schrägstrich () beibehalten wurde, obwohl der Stammname entfernt wurde.

So kopieren Sie den Namen des Registrierungsschlüssels

Eine Sache noch, bevor ich fortfahre – es ist besser, den Pfad zu dem Registrierungsschlüssel, den Sie mit PowerShell lesen möchten, zu kopieren, anstatt ihn manuell einzugeben.

Um einen Registrierungsschlüssel zu kopieren, klicken Sie mit der rechten Maustaste auf den Schlüssel und wählen Sie Kopieren Sie den Schlüsselnamen . Hier ist ein Beispiel.

So verwenden Sie PowerShell zum Lesen des Registrierungswerts – So formatieren Sie Registrierungspfade für PowerShell

Verwenden Sie PowerShell zum Lesen des Registrierungswerts: Beispiele

Verwenden Sie PowerShell zum Lesen des Registrierungswerts: Beispiele

Nachdem Sie nun wissen, wie Sie einen Registrierungspfad für die Verwendung mit PowerShell formatieren, enthält dieser Abschnitt 10 Beispiele für die Verwendung von PowerShell zum Lesen des Registrierungswerts:

So geben Sie alle Werte in einem Registrierungsschlüssel zurück

Um alle Werte eines Registrierungsschlüssels zurückzugeben, geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste.

|_+_| Ändern Sie den Pfad in den Pfad für den Registrierungsschlüssel, dessen Werte Sie lesen möchten. Denken Sie an die Registrierungsformatierung aus dem letzten Abschnitt.

Der Befehl gibt alle Werte im angegebenen Pfad zurück. Der zweite Screenshot unten ist der eigentliche Registrierungseintrag.

Wenn Sie das PowerShell-Ergebnis und die Registrierungswerte (zweiter Bereich) vergleichen, sind sie genau gleich.

So geben Sie einen bestimmten Wert in einem Registrierungsschlüssel zurück und speichern ihn in einer Variablen

Im Anschluss an den letzten Abschnitt hat der Befehl in diesem Abschnitt alle Werte im angegebenen Registrierungspfad zurückgegeben. Sie können jedoch auch PowerShell verwenden, um den Registrierungswert zu lesen, aber einen bestimmten Wert zurückzugeben.

Es gibt mehrere Möglichkeiten, dies zu tun.

Der letzte Befehl (die Get-ItemProperty Befehl) gab die im folgenden Screenshot gezeigten Werte zurück.

Dieses Bild hat ein leeres alt-Attribut; Der Dateiname lautet image-74-1024x591.png

Um den Wert zurückzugeben CommonFilesDir , verwenden Sie einen der folgenden Befehle:

|_+_| |_+_|

Die beiden Befehle geben die Registrierungsdaten zurück, ohne der Eigenschaftsname, CommonFilesDir . Siehe Screenshot unten:

Schließlich können Sie für diesen Unterabschnitt PowerShell verwenden, um den Registrierungswert zu lesen und den Wert in einer Variablen zu speichern. Beispielsweise können wir die Registrierungsdaten im letzten Befehl in einer Variablen namens speichern $RegData .

Hier ist der modifizierte Befehl:

|_+_|

Wenn Sie jetzt den Befehl ausführen, wird kein Ergebnis auf der Konsole zurückgegeben, da das Ergebnis in der Variablen gespeichert wird …

So geben Sie einen bestimmten Wert in einem Registrierungsschlüssel zurück und speichern ihn in einer Variablen

Um jedoch das in der Variablen gespeicherte Ergebnis anzuzeigen, führen Sie die Variable aus…

|_+_|

Hier ist das Ergebnis in PowerShell…

So geben Sie den Namen des Registrierungsunterschlüssels zurück

Der letzte Befehl im vorletzten Unterabschnitt gab sowohl die Namen der Registrierungsschlüssel als auch ihre Daten zurück.

Manchmal möchten Sie jedoch die Namen ohne die Daten anzeigen. Du kannst den ... benutzen Get-Item Cmdlet, um dies zu tun. Siehe den Befehl unten…

|_+_|

Der Befehl gibt die Namen der Registrierungsschlüssel ohne die zugehörige Datenspalte zurück.

So verwenden Sie PowerShell zum Lesen des Registrierungswerts und zum Zurückgeben von Binärdaten

In diesem Beispiel möchte ich den Binärwert im Registrierungsschlüssel anzeigen, BeschriftungFont . Dieser Schlüssel befindet sich in diesem Registrierungspfad HKEY_CURRENT_USERControl PanelDesktopWindowMetrics.

So verwenden Sie PowerShell zum Lesen des Registrierungswerts und zum Zurückgeben von Binärdaten

Der erste Schritt besteht darin, die Eigenschaft der zurückzugeben BeschriftungFont Schlüssel. Bevor ich das tue, listen wir jedoch alle Eigenschaften in auf HKEY_CURRENT_USERSystemsteuerungDesktopWindowMetrics .

|_+_|

Der Befehl gibt eine Reihe von Eigenschaften zurück, einschließlich BeschriftungFont .

Um nur die Eigenschaften zurückzugeben, leiten Sie den obigen Befehl an Select-Object…

|_+_|

Dieser Befehl zeigt alle Eigenschaften in der Liste an.

So verwenden Sie PowerShell zum Lesen des Registrierungswerts und zum Zurückgeben von Binärdaten

Um den CaptionFont (den 4. Wert im Array) anzuzeigen, aktualisieren Sie den Befehl wie unten gezeigt und speichern Sie ihn in einer Variablen …

|_+_|

Um dann den Typ des Registrierungswerts (in diesem Fall REG_BINARY) anzuzeigen, rufen Sie die auf GetValueArt Methode im ursprünglichen Befehl gespeichert in der $schlüssel Variable. Dann benutze BeschriftungFont (gespeichert in der $nam e) als Wert in der Methode.

Hier ist der Befehl …

|_+_|

Das Ergebnis ist wie erwartet Binär.

Als nächstes lesen wir die Werte im Registrierungstyp Binary mit dem PowerShell-Befehl unten…

|_+_|

Wie Sie dem Befehl entnehmen können, wird der Wert durch Aufrufen von erneut versucht Wert erhalten Methode im Originalschlüssel gespeichert in der $schlüssel Variable. Verwenden Sie dann den Namen der Eigenschaft, BeschriftungFont in der Methode.

Das Ergebnis ist ein Haufen Zahlen. Um diesen Wert in der Registrierung anzuzeigen, sehen Sie sich den Screenshot unten an.

So verwenden Sie PowerShell zum Lesen des Registrierungswerts und zum Zurückgeben von Binärdaten

Um das Auflisten von Registrierungswerten zu vereinfachen, habe ich schließlich eine PowerShell-Funktion namens Get-RegistryData erstellt. Um die Funktion herunterzuladen, klicken Sie auf download Get-RegistryData.zip

Entpacken Sie die Datei nach dem Herunterladen. Führen Sie dann die folgenden Befehle aus:

|_+_| Ersetzen Sie C:UsersVictorADownloadsGet-RegistryDataGet-RegistryData durch den Pfad zur Funktion auf Ihrem Computer.

Führen Sie den folgenden Befehl aus, um die Werte oder Daten in den Schlüsseln in einem Registrierungspfad abzurufen.

|_+_|

Der Befehl zeigt die Namen der Schlüssel, den Registrierungspfad und den Typ des Schlüssels an. Die Spalte Typ ist in meinem Screenshot unten ausgeblendet.

Wenn Sie bestimmte Header nicht anzeigen möchten, können Sie alternativ Get-RegistryData an Select-Object leiten.

|_+_|

Mit dem obigen Befehl zeigt Get-RegistryData die Name , Typ , und Daten jedes Schlüssels im angegebenen Registrierungspfad…

Die Get-RegistryData-Funktion hat einen einzelnen Parameter namens Registrierungspfad

So verwenden Sie PowerShell zum Lesen des Registrierungswerts und zum Zurückgeben eines Arrays

Um den Registrierungsschlüssel mit PowerShell zu lesen und den Wert in einem Array zurückzugeben, verwenden Sie die Get-ChildItem Befehl.

Dieser Registrierungsschlüssel, HKEY_CURRENT_USERSystemsteuerungDesktop hat 3 Unterschlüssel. Der folgende Befehl gibt alle Unterschlüssel, ihre Eigenschaften und Werte zurück:

|_+_|

Diese Werte werden in einem Array zurückgegeben. Führen Sie zur Bestätigung den folgenden Befehl aus…

|_+_|

Dieser Befehl bestätigt, dass der Datentyp im letzten Befehl, der in der Variablen $subkeys gespeichert ist, ein Array ist.

So verwenden Sie PowerShell zum Lesen des Registrierungswerts und zum Zurückgeben eines ArraysFür die Get-ChildItem Befehl Ergebnisse in einem Array zurückzugeben, muss der Registrierungsschlüssel Unterschlüssel haben.

So verwenden Sie PowerShell, um den Registrierungswert abzurufen, falls vorhanden

Das Beispiel in diesem Unterabschnitt ähnelt allen anderen Beispielen in diesem Handbuch mit einer kleinen Ausnahme. Die geringfügige Änderung hier besteht darin, Test-Path zu verwenden, um zu überprüfen, ob der Pfad existiert.

Wenn der Pfad vorhanden ist, rufen Sie dann seine Werte mit PowerShell ab. Dieses einfache Skript prüft, ob der Registrierungspfad HKEY_CURRENT_USERControl PanelDesktop existiert.

Wenn es dann existiert, liest es seine Werte mit dem Befehl Get-ItemProperty.

|_+_|

Der Registrierungsschlüssel Registry::HKEY_CURRENT_USERControl PanelDesktop ist vorhanden. Der letzte Befehl hat also seine Werte zurückgegeben.

Mal sehen, ob wir einen Registrierungsschlüssel angeben, der nicht existiert …

|_+_|

Dieses Mal führt das Skript das Skript in der aus Anders Block der WENN Erklärung.

So verwenden Sie PowerShell, um den Registrierungswert abzurufen, falls vorhanden

So verwenden Sie PowerShell zum Abrufen und Vergleichen von Registrierungswerten

Wie Sie sich vielleicht schon gedacht haben, ist die Get-Item und Get-ItemProperty -Befehle zeigen die Registrierungsschlüsseltypen und -daten nicht an. Wenn Sie also die Daten in einem Schlüssel vergleichen möchten, müssen Sie einen anderen Weg finden, dies zu tun.

World of Warcraft klassische Serverpopulation

Im Unterabschnitt Verwendung von PowerShell zum Lesen des Registrierungswerts und Zurückgeben von Binärdaten habe ich erwähnt, dass ich eine Funktion namens Get-RegistryData erstellt habe.

Um die Befehle in diesem Unterabschnitt auszuführen, müssen Sie die Funktion Get-RegistryData.zip herunterladen. Weitere Informationen finden Sie im Unterabschnitt So verwenden Sie PowerShell zum Lesen des Registrierungswerts und zum Zurückgeben von Binärdaten.

Sie können diese Funktion verwenden, um die Namen, Typen und Daten der Unterschlüssel in einem angegebenen Registrierungspfad zurückzugeben.

Um beispielsweise die Namen, Typen und Daten aller Einträge in HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorer zurückzugeben, führen Sie den folgenden Befehl aus…

|_+_|

Wenn wir weiter gehen, sagen wir, ich möchte den Wert von vergleichen SymbolUnterstrichen Schlüssel mit einem anderen Wert, gehe ich wie unten beschrieben vor.

  1. Leiten Sie die Ausgabe der Get-RegistryData Befehl in a Wo-Objekt Befehl und filtern Sie nach Name gleich SymbolUnterstrichen .
|_+_|

Der letzte Befehl zeigt, dass der aktuelle Wert in IconUnderline 3 ist.

  1. Wenn ich diesen Wert mit einem anderen Wert vergleichen möchte, z. B. 2, verwende ich die folgenden Befehle. Der erste Befehl speichert den Befehl in Schritt 1 oben in einer Variablen.
|_+_|

Der WENN -Anweisung vergleicht den aktuellen Wert im Registrierungsschlüssel mit 1. Wenn er dann ungleich 1 ist, verwendet sie die Set-Item-Eigenschaft Befehl, um den Wert auf das zu aktualisieren, was Sie in der angegeben haben Wert Parameter.

So verwenden Sie PowerShell zum Abrufen von Registrierungsschlüsseln und Unterschlüsseln

Es gibt zwei Befehle, die Sie verwenden können, um Registrierungsschlüssel und Unterschlüssel abzurufen. Du kannst den ... benutzen Get-ItemProperty oder der Get-ChildItem Befehl.

Der Unterschied zwischen den beiden Befehlen besteht darin, wie Sie den Registrierungspfad angeben.

Um die zu verwenden Get-ItemProperty Um den Registrierungsschlüssel und die Unterschlüssel abzurufen, fügen Sie am Ende des Registrierungspfads einen umgekehrten Schrägstrich hinzu. Fügen Sie dann den Sternchen-Platzhalter hinter dem umgekehrten Schrägstrich hinzu.

Um zum Beispiel Get-ItemProperty Schlüssel und Unterschlüssel in HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorer zu lesen, führen Sie den folgenden Befehl aus:

|_+_|

Andererseits erfordert die Verwendung von Get-ChildItem kein Hinzufügen eines umgekehrten Schrägstrichs und eines Platzhalters. Hier ist ein Beispiel mit dem Get-ChildItem-Befehl:

|_+_|

Beide Befehle geben die Schlüssel und Unterschlüssel im angegebenen Registrierungspfad zurück.

So verwenden Sie PowerShell, um die LastWriteTime eines Registrierungsschlüssels abzurufen

Während ich diesen Artikel recherchierte, fand ich heraus, dass viele Benutzer nach der Verwendung von PowerShell suchen, um herauszufinden, wann ein Registrierungsschlüssel zuletzt aktualisiert wurde.

Allerdings habe ich bei meinen Recherchen auch herausgefunden, dass es für diese Aufgabe keine Cmdlets gibt. Außerdem scheint die einzige Lösung darin zu bestehen, eine benutzerdefinierte PowerShell-Funktion zu erstellen.

Glücklicherweise fand ich eine Funktion in superuser.com . Also musste ich meine nicht erstellen!

Um es S-Zone-Lesern leicht zu machen, habe ich die heruntergeladen Add-RegKeyLastWriteTime superuser.com Funktion.

Add-RegKeyLastWriteTime wird von Cpt.Whale zur Verfügung gestellt – einem Mitwirkenden der superuser.com-Community

Um die Funktion von S Zone herunterzuladen, klicken Sie auf download Add-RegKeyLastWriteTime.zip . Entpacken Sie dann die heruntergeladene ZIP-Datei.

Öffnen Sie schließlich PowerShell und führen Sie die folgenden Befehle aus:

|_+_| Ersetzen Sie C:UsersVictorADownloadsAdd-RegKeyLastWriteTimeAdd-RegKeyLastWriteTime durch den Pfad zur Funktion auf Ihrem Computer.

Um schließlich die letzte Schreibzeit eines Registrierungsschlüssels zu erhalten, führen Sie den folgenden Befehl aus:

|_+_| HKCU ist das abgekürzte Format für HKEY_CURRENT_CONFIG. Ich habe dies ausführlich im Abschnitt So formatieren Sie Registrierungspfade für PowerShell dieses Handbuchs besprochen.

Der Befehl gibt die letzte Schreibzeit für alle Unterschlüssel im Basisregistrierungsschlüssel HKEY_CURRENT_USER zurück…

So verwenden Sie PowerShell, um einen Registrierungsschlüssel zu erhalten

So verwenden Sie PowerShell zum Abrufen der Registrierungsgröße

Wenn Sie die Größe der Registrierung in Windows 10 sehen möchten, führen Sie den folgenden Befehl aus:

|_+_|

Der Befehl gibt die aktuelle und maximale Größe der Registrierungsdatenbank zurück.

Sie können jedoch mit einer verbesserten Version des Befehls zusätzliche Ergebnisse anzeigen. Ich habe einen Code gefunden, der dies tun kann superuser.com .

Der Code von Markus (ein Mitwirkender der superuser.com-Community) zeigt zusätzliche Informationen an. Hier ist der Code.

|_+_|

Und das Ergebnis in PowerShell ISE …

Hoffentlich konnte ich Ihnen erfolgreich beibringen, wie Sie mit PowerShell den Registrierungswert lesen können!

Ich hoffe auch, dass Sie die S-Zone hilfreich fanden. Wenn Sie es hilfreich fanden, stimmen Sie bitte ab ja zu der Frage War dieser Beitrag hilfreich unten.

Alternativ können Sie eine Frage stellen, einen Kommentar hinterlassen oder Feedback geben, indem Sie das Formular zum Hinterlassen einer Antwort am Ende dieser Seite verwenden.

Weitere PowerShell S-Zonen finden Sie schließlich auf unserer Windows PowerShell-Anleitungsseite. Vielleicht finden Sie auch unsere Seite Work from Home sehr hilfreich.

Referenzen und weiterführende Literatur

  1. Arbeiten mit Registrierungseinträgen
  2. Laden Sie Get-RegistryData.zip herunter
  3. Laden Sie Add-RegKeyLastWriteTime.zip herunter
  4. Windows PowerShell ISE erklärt