Magic Quadrant™ für Privileged Access Management 2025: Netwrix zum vierten Jahr in Folge anerkannt. Laden Sie den Bericht herunter.

Plattform
Ressourcen­zentrumBlog
PowerShell Create Registry Key: Vollständiger Leitfaden für Administratoren

PowerShell Create Registry Key: Vollständiger Leitfaden für Administratoren

Sep 10, 2024

PowerShell bietet eine sicherere und effizientere Alternative zu regedit und reg.exe, um Registrierungsschlüssel und -werte zu erstellen, zu bearbeiten und zu löschen. Cmdlets wie New-Item, Set-ItemProperty, Remove-Item und Rename-ItemProperty ermöglichen Automatisierung, Remoteverwaltung und Fehlerbehandlung. Administratoren sollten die Registry sichern, PowerShell mit erhöhten Rechten ausführen und Test-Path und try/catch verwenden, um Fehlkonfigurationen zu vermeiden. Mit geeigneten Sicherheitsmaßnahmen vereinfacht PowerShell die lokale und die Remote-Registry-Verwaltung.

Administratoren können alle typischen Windows-Registrierungsoperationen entweder über die klassische regedit-Benutzeroberfläche oder das reg.exe-Dienstprogramm ausführen. Aber es gibt eine weitere Option — PowerShell. PowerShell kann die Verwaltung der Registry erheblich vereinfachen, sowohl lokal als auch remote.

In diesem Artikel erklären wir im Detail, wie man mit PowerShell Registrierungsschlüssel und deren Werte erstellt, verwaltet und löscht, sowie fortgeschrittene Vorgänge wie die Remoteverwaltung der Registry über PowerShell.


Was ist die Windows-Registry?

Die Windows-Registry ist eine hierarchische Datenbank, die Konfigurationseinstellungen und andere kritische Informationen für das Microsoft-Windows Betriebssystem und seine Anwendungen speichert. Wenn beispielsweise ein Programm installiert wird, kann es neue Unterschlüssel und Werte im Registry-Bereich anlegen, um seine Einstellungen und seinen Status zu speichern, und vorhandene Einträge ändern, um sich tiefer in Windows zu integrieren.

Der Kernel, Gerätetreiber, Dienste und der Security Accounts Manager können alle die Registry verwenden. Benutzerspezifische Einstellungen wie Desktop-Optionen, Dateizuordnungen und Anwendungspräferenzen werden in der Registry gespeichert, um eine personalisierte Benutzererfahrung zu ermöglichen. Die Registry erlaubt auch den Zugriff auf Leistungszähler zur Analyse der Systemleistung.

Struktur der Registry

Die Windows-Registry hat eine hierarchische Struktur, die aus Stamm­schlüsseln, Unterschlüsseln und Werten besteht.

Stammschlüssel (Hives)

Stammschlüssel sind die Hauptkategorien, unter denen alle Unterschlüssel und Werte organisiert sind. Sie umfassen:

  • HKEY_CLASSES_ROOT (HKCR) — Enthält Informationen über registrierte Anwendungen, wie Dateizuordnungen und OLE-Objektklassennummern.
  • HKEY_CURRENT_USER (HKCU) — Speichert benutzerspezifische Einstellungen des aktuell angemeldeten Benutzers, z. B. Desktop-Präferenzen und Anwendungseinstellungen.
  • HKEY_LOCAL_MACHINE (HKLM) — Enthält computerbezogene Konfigurationsinformationen für alle Benutzer, einschließlich Hardwareeinstellungen, installierte Software und Sicherheitsrichtlinien.
  • HKEY_USERS (HKU) — Enthält alle derzeit geladenen Benutzerprofile auf dem Computer. HKCU ist in Wirklichkeit ein Unterschlüssel von HKU, der auf den aktuell angemeldeten Benutzer verweist.
  • HKEY_CURRENT_CONFIG (HKCC) — Verweist auf die Einstellungen des aktuellen Hardwareprofils, einschließlich Systemgeräten und häufig verwendeten Konfigurationen.
Image

Unterschlüssel

Jeder Stammschlüssel enthält mehrere Unterschlüssel, die wiederum weitere Unterschlüssel enthalten können und so eine baumartige Struktur bilden. Unterschlüssel funktionieren ähnlich wie Ordner im Dateisystem und organisieren verwandte Einstellungen in Gruppen.

Jeder Unterschlüssel hat einen zugewiesenen Datentyp, der bestimmt, welche Werte (Daten) er enthalten kann. Verfügbare Typen sind REG_SZ (Zeichenkette), REG_BINARY (Binärwert) und REG_DWORD (32-Bit-Zahl).

Image

Vorsicht: Sichern Sie die Registry, bevor Sie Änderungen vornehmen

Die Windows-Registry enthält Konfigurationen und Einstellungen, die für den Betrieb des Betriebssystems und der Anwendungen unerlässlich sind. Eine falsche Änderung kann zu Systeminstabilität, Anwendungsfehlern oder sogar dazu führen, dass Windows nicht mehr startet.

Daher sollten Sie, bevor Sie die Registry mit PowerShell oder einem anderen Tool bearbeiten, eine Sicherung oder einen Systemwiederherstellungspunkt erstellen. Diese Sicherheitsmaßnahme ermöglicht es Ihnen, das System auf einen früheren Zustand zurückzusetzen, falls etwas schiefgeht. Schritte zum Sichern und Wiederherstellen der Registry werden später in diesem Leitfaden beschrieben.


PowerShell und die Windows-Registry

PowerShell bietet eine robuste Sammlung von Cmdlets zur Verwaltung der Windows-Registry und stellt damit einen leistungsstärkeren Ansatz dar als herkömmliche Methoden wie Regedit. Mit PowerShell können Sie Registrierungsschlüssel und -werte erstellen, ändern und löschen. Die Verwaltung der Registry mit PowerShell ist besonders nützlich für Systemadministratoren und Power-User, die Systemkonfigurationen verwalten oder Änderungen auf mehreren Computern effizient anwenden müssen.

Vorteile von PowerShell

PowerShell ist eine von Microsoft entwickelte Skriptsprache, die die Systemadministration, Konfigurationsverwaltung und Aufgabenautomatisierung erleichtert. PowerShell basiert auf dem .NET-Framework, was die Arbeit mit Objekten und .NET-Funktionen ermöglicht. Wichtige Vorteile von PowerShell sind:

  • Automatisierung und Skripting — PowerShell ermöglicht die Automatisierung wiederkehrender Aufgaben durch Skripte, was es zu einem leistungsstarken Werkzeug für Administratoren macht.
  • Umfassende Cmdlet-Sammlung — PowerShell bietet eine umfangreiche Sammlung vordefinierter Cmdlets für gängige Verwaltungsaufgaben, von Dateioperationen bis hin zur Prozess- und Registry-Verwaltung.
  • Pipeline-Unterstützung — Benutzer können die Ausgabe eines Befehls als Eingabe für einen anderen verwenden, um komplexe Operationen mit minimalem Code durchzuführen.
  • Breite Funktionalität — Die Skriptsprache unterstützt Variablen, Schleifen, Bedingungen und erweiterte Funktionen wie Fehlerbehandlung und parallele Verarbeitung.
  • Lokale und Remote-Verwaltung — PowerShell kann auf WMI (Windows Management Instrumentation) und COM (Component Object Model) zugreifen, was eine Vielzahl administrativer Aufgaben lokal oder remote ermöglicht.
  • Erweiterbare Oberfläche — Benutzer und Drittanbieter können PowerShell durch benutzerdefinierte Cmdlets, Module, Funktionen und Skripte erweitern.

Rolle der PowerShell-Provider bei der Registry-Verwaltung

PowerShell-Provider ermöglichen Benutzern den Zugriff auf und die Verwaltung der Windows-Registry und anderer Datenspeicher (z. B. Dateisysteme und Zertifikatspeicher) auf einheitliche Weise. Sie machen in unterschiedlichen Formaten gespeicherte Daten auf konsistente Weise über Standard-PowerShell-Befehle zugänglich.

Provider ermöglichen das Durchlaufen der hierarchischen Struktur der Registry, ähnlich wie beim Navigieren durch Verzeichnisse und Dateien. Sie können sich in Registrierungsschlüssel hinein- und herausbewegen, als wären sie Ordner.

Cmdlets zur Registry-Verwaltung

PowerShell stellt eine Reihe von Cmdlets zur Verwaltung der Windows-Registry bereit. Zum Beispiel können Sie mit dem Cmdlet New-Item einen neuen Registrierungsschlüssel erstellen. Hier eine Übersicht über wichtige Cmdlets:

  • Get-Item — Ruft Registrierungsschlüssel an einem bestimmten Ort ab.
  • Set-Item — Ändert den Wert eines Registrierungsschlüssels.
  • New-Item — Erstellt einen neuen Registrierungsschlüssel.
  • Remove-Item — Löscht Registrierungsschlüssel und deren Werte.
  • Get-ItemProperty — Ruft die Eigenschaften (Werte) eines Schlüssels ab.
  • Remove-ItemProperty — Löscht einen Wert aus einem Registrierungsschlüssel.
  • Set-ItemProperty — Ändert den Wert eines Registrierungsschlüssels.
  • Get-ChildItem — Listet Unter-schlüssel und Werte eines Schlüssels auf.

PowerShell für die Registry-Verwaltung einrichten

PowerShell als Administrator ausführen

In vielen Fällen erfordert das Ändern der Registry erhöhte Berechtigungen, daher muss PowerShell im Administrator-Modus ausgeführt werden. Beispielsweise sind Administratorrechte erforderlich, um Systemdateien, Registrierungseinstellungen oder Netzwerkkonfigurationen zu ändern. Administratorrechte werden auch oft benötigt, um Skriptrichtlinien zu ändern oder Software zu installieren, zu aktualisieren oder zu entfernen.

Um PowerShell im erhöhten Modus zu öffnen:

Windows 10 und Windows 11

  1. Öffnen Sie das Startmenü, geben Sie PowerShell ein.
  2. Klicken Sie mit der rechten Maustaste auf Windows PowerShell oder Windows Terminal.
  3. Wählen Sie Als Administrator ausführen.

Windows Server

  1. Öffnen Sie das Startmenü, navigieren Sie zu Windows PowerShell.
  2. Rechtsklick auf Windows PowerShell.
  3. Wählen Sie Als Administrator ausführen.Getting Information about Providers and Drives

Informationen über Provider und Laufwerke abrufen

Verwenden Sie Get-PSProvider und Get-PSDrive, um Informationen über verfügbare Provider und Laufwerke in der aktuellen PowerShell-Sitzung abzurufen.

Informationen über verfügbare Anbieter abrufen (Get-PSProvider)

Um Informationen über die in PowerShell verfügbaren Anbieter abzurufen, einschließlich Details zu den unterstützten Funktionen und den zugehörigen Laufwerken, verwenden Sie das folgende Cmdlet:

Get-PSProvider

Image

Informationen über verfügbare Laufwerke abrufen (Get-PSDrive)

Laufwerke in PowerShell sind logische Darstellungen verschiedener Datenspeicher, wie Dateisysteme, Registrierungsschlüssel, Zertifikate und Umgebungsvariablen. Um Informationen über die Laufwerke abzurufen, die in der aktuellen PowerShell-Sitzung verfügbar sind, verwenden Sie das Cmdlet Get-PSDrive. Für Laufwerke, die Speicher darstellen, wie beispielsweise Dateisystemlaufwerke, werden außerdem der verwendete und der freie Speicherplatz angezeigt.

Get-PSDrive

Image

Erstellen, Verwalten und Bearbeiten von Registrierungsschlüsseln mit PowerShell

Neue Registrierungsschlüssel erstellen (New-Item)

Mit dem Cmdlet New-Item können Sie in PowerShell Registrierungsschlüssel erstellen.

Erstellen, Verwalten und Bearbeiten von Registrierungsschlüsseln mit PowerShell

Neue Registrierungsschlüssel erstellen (New-Item)

Mit dem Cmdlet New-Item können Sie in PowerShell Registrierungsschlüssel erstellen.

      New-Item -Path "HKCU:\Software\MyNewApplication"
      
Image

Nachdem Sie einen Registrierungsschlüssel mit PowerShell erstellt haben, können Sie den Erfolg der Operation mit Get-Item überprüfen.

      Get-Item -Path "HKCU:\Software\MyNewApplication"
      
Image

Überprüfen, ob ein Registrierungsschlüssel existiert (Test-Path)

Um Fehler und unerwünschte Ergebnisse zu vermeiden, ist es eine bewährte Methode, Test-Path auszuführen, um die Existenz von Registrierungsschlüsseln, Dateien und anderen Elementen zu prüfen, bevor Sie Befehle ausführen, die diese beeinflussen. Hier ein einfaches Beispiel :

Überprüfen, ob ein Registrierungsschlüssel existiert (Test-Path)

Um Fehler und unerwünschte Ergebnisse zu vermeiden, ist es eine bewährte Methode, Test-Path auszuführen, um die Existenz von Registrierungsschlüsseln, Dateien und anderen Elementen zu prüfen, bevor Sie Befehle ausführen, die diese beeinflussen. Hier ein einfaches Beispiel :

      Test-Path -Path "HKCU:\Software\MyNewApplication"
      
Image

Und hier ein komplexeres Skript, das detailliertere Ausgaben liefert :

Und hier ein komplexeres Skript, das detailliertere Ausgaben liefert :

      # Check if HKCU\Software\MyNewApplication exists

if (Test-Path -Path “HKCU:\Software\MyNewApplication”) {

    Write-Output "Registry key 'HKCU:\Software\MyNewApplication' exists."

} else {

    Write-Output "Registry key 'HKCU:\Software\MyNewApplication' does not exist."

}
      
Image

Umgang mit häufigen Fehlern

Bei der Arbeit mit der Windows-Registry in PowerShell können verschiedene Fehler auftreten. Hier sind einige der häufigsten Probleme und deren Lösungen :

  • Access denied (Zugriff verweigert) — Dieser Fehler tritt häufig auf, wenn Sie versuchen, die Registry ohne ausreichende Berechtigungen zu ändern. Führen Sie PowerShell mit erhöhten Rechten aus (Als Administrator ausführen).
  • Incorrect path (Falscher Pfad) — Tippfehler oder falsche Pfadangaben können Fehler verursachen. Überprüfen Sie den Pfad sorgfältig.
  • Cmdlet not recognized (Cmdlet nicht erkannt) — Dies weist darauf hin, dass Sie eine veraltete PowerShell-Version verwenden. Aktualisieren Sie PowerShell auf die neueste Version.
  • Script execution disabled (Skriptausführung deaktiviert) — PowerShell kann so konfiguriert sein, dass Skripte nicht ausgeführt werden dürfen. Aktivieren Sie sie mit Set-ExecutionPolicy RemoteSigned (or specify another policy level that suits your security requirements). Be cautious, as changing execution policies can expose your system to risks.

Bei der Arbeit mit der Windows-Registry in PowerShell können verschiedene Fehler auftreten. Hier sind einige der häufigsten Probleme und deren Lösungen :

  • Access denied (Zugriff verweigert) — Dieser Fehler tritt häufig auf, wenn Sie versuchen, die Registry ohne ausreichende Berechtigungen zu ändern. Führen Sie PowerShell mit erhöhten Rechten aus (Als Administrator ausführen).
  • Incorrect path (Falscher Pfad) — Tippfehler oder falsche Pfadangaben können Fehler verursachen. Überprüfen Sie den Pfad sorgfältig.
  • Cmdlet not recognized (Cmdlet nicht erkannt) — Dies weist darauf hin, dass Sie eine veraltete PowerShell-Version verwenden. Aktualisieren Sie PowerShell auf die neueste Version.
  • Script execution disabled (Skriptausführung deaktiviert) — PowerShell kann so konfiguriert sein, dass Skripte nicht ausgeführt werden dürfen. Aktivieren Sie sie mit Set-ExecutionPolicy RemoteSigned (oder geben Sie eine andere Richtlinienstufe an, die Ihren Sicherheitsanforderungen entspricht). Seien Sie vorsichtig, da das Ändern der Ausführungsrichtlinien Ihr System Sicherheitsrisiken aussetzen kann.
  • Data type errors (Datentypfehler) — Verwenden Sie beim Erstellen oder Ändern von Registrierungsschlüsseln den richtigen Datentyp.
  • Item does not exist (Element existiert nicht) — Verwenden Sie Test-Path, um zu prüfen, ob der Pfad vorhanden ist.
  • Improper use of wildcards (Falsche Verwendung von Platzhaltern) — Verwenden Sie Platzhalter mit Vorsicht und testen Sie mit dem Parameter -WhatIf, bevor Sie Änderungen ausführen.

Hinzufügen und Aktualisieren von Registrierungsschlüsseln und -werten

Neue Schlüssel und Werte hinzufügen (New-ItemProperty)

Mit PowerShell können Sie Registrierungsschlüssel hinzufügen und ihnen Werte zuweisen, indem Sie den Cmdlet New-ItemProperty verwenden.

      New-ItemProperty -Path "HKCU:\Software\MyNewApplication" -Name "NewString" -PropertyType String -Value "Hello"
      
Image

Zum Beispiel erstellt der folgende Befehl einen neuen Registrierungsschlüssel namens NewString und weist ihm den Wert Hello zu.

Image

Ebenso können Sie eine Untertaste NewDWORD mit dem Wert 1234 erstellen.

      New-ItemProperty -Path "HKCU:\Software\MyNewApplication" -Name "NewDWORD" -PropertyType DWord -Value 1234
      
Image
Image

Registrierungswerte aktualisieren (Set-ItemProperty)

Zum Bearbeiten eines Registrierungsschlüssels in PowerShell verwenden Sie Set-ItemProperty.

      Set-ItemProperty -Path "HKCU:\Software\MyApplication" -Name "Setting_Name" -Value "New_Value"
      

Sie können PowerShell auch verwenden, um Registrierungswerte zu ändern. Zum Beispiel können Sie, um einen in der Registrierung gespeicherten Anwendungswert zu aktualisieren, einen Befehl wie den folgenden verwenden:

      Set-ItemProperty -Path "HKCU:\Software\MyNewApplication" -Name "NewString" -Value "Hello World"
      

Sie können Werte ändern, etwa Anwendungseinstellungen. Obwohl Set-ItemProperty effektiv ist, gibt das Cmdlet keine Ausgabe zurück. Verwenden Sie Get-Item, um Änderungen zu überprüfen.

      Get-Item -Path "HKCU:\Software\MyNewApplication"
      
Image

Alternativ können Sie Ihre Änderungen im Registrierungs-Editor überprüfen:

Image

Sehen wir uns ein weiteres Beispiel an. Wenn Sie den Wert eines Unterschlüssels mit dem Namen NewDWORD auf 5678 ändern möchten, würden Sie dieses Cmdlet verwenden:

      Set-ItemProperty -Path "HKCU:\Software\MyNewApplication" -Name "NewDWORD" -Value 5678
      

Um Ihre Änderungen zu überprüfen, verwenden Sie das Cmdlet Get-Item:

      Get-Item -Path "HKCU:\Software\MyNewApplication"
      
Image

Löschen eines Registrierungswerts (Remove-ItemProperty)

Um einen Registrierungswert zu löschen, können Sie das Cmdlet Remove-ItemProperty verwenden:

      Remove-ItemProperty -Path "HKCU:dummyNetwrixKey" -Name "NetwrixParam"
      

Registrierungsschlüssel löschen (Remove-Item)

Um einen Registrierungsschlüssel zu löschen, verwenden Sie Remove-Item. Mit dem Parameter –Recurse werden alle Unterschlüssel ohne Bestätigung gelöscht.

      Remove-Item -Path "HKCU:dummyNetwrixKey" -Recurse
      

Um nur Unterschlüssel zu löschen, ohne den Hauptschlüssel zu entfernen, fügen Sie am Ende des Pfades ein * hinzu.

      Remove-Item -Path "HKCU:dummyNetwrixKey*" -Recurse
      

Registrierungswert umbenennen (Rename-ItemProperty)

Zum Umbenennen eines Registrierungswertes verwenden Sie Rename-ItemProperty.

      Rename-ItemProperty -Path "HKCU:dummyNetwrixKey" -Name "NetwrixParam" -NewName "NetwrixNewParam"
      

Registrierungsschlüssel umbenennen (Rename-Item)

Zum Umbenennen eines Registrierungsschlüssels verwenden Sie Rename-Item.

      Rename-Item -Path "HKCU:dummyNetwrixKey"  NetwrixNewKey
      

Erweiterte Registry-Operationen mit PowerShell

Erweiterte Registry-Operationen umfassen die Verwendung des PowerShell App Deployment Toolkits (PSADT) sowie die Verwaltung der Windows-Registrierung auf entfernten Computern mithilfe von PowerShell.

Verwendung des PowerShell App Deployment Toolkit (PSADT)

Das PSADT ist eine Sammlung von Skripten und Tools, die für die Bereitstellung und Verwaltung von Anwendungen entwickelt wurden. Es wird häufig verwendet, um komplexe oder benutzerdefinierte Anwendungen bereitzustellen, die spezielle Konfigurationen oder Benutzerinteraktionen erfordern. Es kann auch zum Aktualisieren oder Patchen von Anwendungen eingesetzt werden, indem Bereitstellungsskripte angepasst werden, um neue Versionen oder Änderungen zu berücksichtigen. Organisationen verwenden das PSADT auch, um während des Bereitstellungsprozesses informative Meldungen, Eingabeaufforderungen und Rückmeldungen an Benutzer anzuzeigen, um deren Verständnis und Zusammenarbeit zu verbessern.

Wichtige Funktionen und Vorteile:

  • Bereitstellungsskripte — Diese Skripte ermöglichen es Ihnen, den Installationsprozess von Anwendungen zu definieren und anzupassen. Sie können Aufgaben wie das Überprüfen von Voraussetzungen, das Installieren von Software, das Konfigurieren von Einstellungen und das Aufräumen nach der Installation übernehmen.
  • Anpassbare Benutzeroberfläche — Das Anzeigen von Eingabeaufforderungen, Benachrichtigungen und Fortschrittsbalken während der Bereitstellung bietet dem Benutzer Rückmeldung und erleichtert die Interaktion.
  • Protokollierungsfunktionen — Das Erfassen von Bereitstellungsaktivitäten und Fehlern ist wichtig für Fehlerbehebung und Audits.
  • Vor- und Nachinstallationsaufgaben — Sie können Aufgaben definieren, um das System vor der Installation vorzubereiten und zusätzliche Konfigurations- oder Bereinigungsaufgaben danach auszuführen.
  • Konfigurationseinstellungen für Anwendungen — Sie können Einstellungen definieren, die während der Bereitstellung dynamisch angewendet werden. Dies ermöglicht es, den Bereitstellungsprozess an verschiedene Umgebungen oder Anforderungen anzupassen.
  • Stille Installation von Anwendungen — Sie können Bereitstellungen ohne Benutzerinteraktion ausführen, wenn dies erforderlich ist.

Remote-Registry-Verwaltung (Enter-PSSession und Invoke-Command)

Administratoren können PowerShell verwenden, um auf die Registrierung von entfernten Computern innerhalb eines Netzwerks zuzugreifen, sie zu durchsuchen und zu ändern.
Seien Sie vorsichtig beim Bearbeiten einer Remote-Registry mit PowerShell, da falsche Änderungen zu Systeminstabilität oder Sicherheitslücken führen können.
Stellen Sie außerdem sicher, dass Sie über die erforderlichen Administratorrechte verfügen und dass Firewalls und Netzwerkeinstellungen den Remotezugriff erlauben.

Wichtige PowerShell-Befehle für die Remote-Registry-Verwaltung:

  • Enter-PSSession wird verwendet, um eine interaktive Sitzung mit einem einzelnen Remotecomputer herzustellen, und Exit-PSSession, um diese Sitzung zu beenden.
  • Invoke-Command wird verwendet, um einen einzelnen Befehl oder einen Skriptblock an einen oder mehrere Remotecomputer zu senden. Damit kann z. B. dieselbe Registry-Änderung effizient auf mehreren Systemen durchgeführt werden

Enter-PSSession und Exit-PSSession

Enter-PSSession wird verwendet, um eine interaktive Sitzung mit einem Remotecomputer zu starten. Dies ist besonders nützlich, wenn Sie eine Reihe von Befehlen interaktiv ausführen müssen. Sobald Sie verbunden sind, können Sie Registry-Operationen ausführen, als wären Sie direkt am entfernten System angemeldet.

Bevor Sie Enter-PSSession verwenden, stellen Sie sicher, dass die PowerShell-Remoting-Funktion auf dem Remotecomputer aktiviert ist, indem Sie folgenden Befehl ausführen:

      Enable-PSRemoting
      

Um eine interaktive Sitzung zu starten, führen Sie diesen Cmdlet aus:

      Enter-PSSession -ComputerName Windows11 -Credential Get-Credential
      
Image

Um zu überprüfen, ob Sie verbunden sind, achten Sie auf den Namen des Remotecomputers vor der Eingabeaufforderung.

Image

Sobald die Verbindung hergestellt ist, können Sie die Standard-Cmdlets von PowerShell verwenden, um die Registrierung interaktiv zu verwalten. Zum Beispiel können Sie einen Registrierungswert vom Remotecomputer abrufen mit:

      Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\BitLocker"
      
Image

Um die Remotesitzung zu beenden und zur lokalen PowerShell-Eingabeaufforderung zurückzukehren, verwenden Sie Exit-PSSession cmdlet.

Invoke-Command

Invoke-Command ermöglicht das Ausführen von Befehlen auf einem oder mehreren Remotecomputern. Dies ist besonders nützlich für nicht-interaktive Aufgaben oder wenn Sie Befehle aus einem Skript heraus ausführen müssen. Zum Beispiel, um einen Registrierungswert von einem Remotecomputer abzurufen:

      Invoke-Command -ComputerName Windows11 -Credential Get-Credential -ScriptBlock {

    Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\BitLocker"

}

You can specify multiple computers as follows:

-ComputerName 'Computer1', 'Computer2'
      

Wenn Sie Invoke-Command ausführen, werden Sie aufgefordert, die Anmeldeinformationen für den Remotecomputer anzugeben.

Image

Nachdem Sie gültige Anmeldeinformationen eingegeben und auf OK geklickt haben, wird die Ausgabe des ausgeführten Skripts angezeigt:

Image

Sicherheitsüberlegungen für die Remote-Registry-Verwaltung

Wenn Sie die Registrierung aus der Ferne mit PowerShell bearbeiten, befolgen Sie diese Sicherheitsrichtlinien:

  • Verwenden Sie sichere Authentifizierungsmethoden.
  • Stellen Sie sicher, dass alle Kommunikationen verschlüsselt sind, indem Sie den Parameter -UseSSL mit Enter-PSSession oder Invoke-Command verwenden.
  • Aktivieren Sie PowerShell-Remoting vorsichtig und beschränken Sie den Zugriff auf vertrauenswürdige Hosts und Netzwerke.
  • Gewähren Sie nur die minimal erforderlichen Berechtigungen.
  • Legen Sie eine restriktive Ausführungsrichtlinie fest, um die Ausführung nicht autorisierter Skripte zu verhindern.
  • Beschränken Sie den Zugriff mit Just Enough Administration (JEA), einer Technologie, die delegierte Verwaltung ermöglicht.
  • Konfigurieren Sie Firewallregeln, um den Zugriff auf PowerShell-Remoting-Ports zu beschränken (standardmäßig 5985 für HTTP oder 5986 für HTTPS).

Bewährte Methoden zur Verwaltung der Registrierung

Verstehen Sie die Struktur der Registry. Machen Sie sich insbesondere mit den Hives HKEY_LOCAL_MACHINE und HKEY_CURRENT_USER vertraut.

  • Sichern Sie die Registry, bevor Sie Änderungen vornehmen.
  • Führen Sie PowerShell als Administrator aus.
  • Seien Sie vorsichtig. Unsachgemäße Änderungen können zu Instabilität führen.
  • Verwenden Sie Fehlerbehandlung (try/catch).
  • Vermeiden Sie Hardcodierung von Pfaden.
  • Testen Sie in einer sicheren Umgebung.
  • Dokumentieren Sie Ihre Änderungen.
  • Verwenden Sie Transaktionen, wo dies unterstützt wird, mit dem Parameter -UseTransaction.
  • Befolgen Sie bewährte Sicherheitspraktiken wie das Prinzip der minimalen Berechtigungen.

Sichern und Wiederherstellen von Registrierungseinstellungen

Sie können die Registrierungseinstellungen entweder mit PowerShell oder mit dem Registrierungs-Editor (regedit) sichern und wiederherstellen.

Beachten Sie, dass einige Änderungen einen Neustart erfordern, um wirksam zu werden.

Mit PowerShell

Zum Sichern der Registry öffnen Sie PowerShell als Administrator und führen Sie diesen Befehl aus:

      reg export HKCU\Software\MyNewApplication C:\registry_backup.reg
      
Image

Zum Wiederherstellen der Registry aus einer Sicherung:

      reg import c:\registry_backup.reg
      
Image

Mit dem Registrierungs-Editor (regedit):

Um eine Registry-Hive zu sichern, führen Sie diese Schritte aus:

  • Öffnen Sie den Registrierungs-Editor (drücken Sie Win + R, geben Sie regedit ein und drücken Sie Enter).
  • Klicken Sie mit der rechten Maustaste auf den zu sichernden Hive und wählen Sie Exportieren.
Image
  • Wählen Sie einen Speicherort, geben Sie dem Backup einen aussagekräftigen Namen und stellen Sie sicher, dass der Exportbereich auf Alles gesetzt ist.
  • Klicken Sie auf Speichern, um die .reg-Datei zu erstellen.
Image

Um eine Sicherung wiederherzustellen:

  • Klicken Sie im Registrierungs-Editor auf Datei > Importieren.
Image
  • Navigieren Sie zur gespeicherten .reg-Datei, wählen Sie sie aus und klicken Sie auf Öffnen.
Image
  • Wenn die Bestätigungsmeldung erscheint, klicken Sie auf OK, um zum Registrierungs-Editor zurückzukehren.
Image

Fazit

Mit PowerShell können IT-Fachleute eine Vielzahl von Aufgaben zur Registry-Verwaltung optimieren. Aber denke daran: Schon eine einzige falsche Änderung kann dein Betriebssystem in den blauen Bildschirm des Todes führen. Bevor du also Änderungen an der Registry vornimmst, solltest du 100 % sicher sein, was du änderst, und eine aktuelle Sicherung haben. Du solltest außerdem alle vorgenommenen Änderungen sorgfältig dokumentieren. Netwrix Auditor for Windows Server kann helfen; es überwacht, meldet und warnt vor Änderungen an der Windows-Registry.

FAQ

Wie kann ich mit PowerShell einen Registrierungsschlüssel hinzufügen, um Remote Desktop Services (RDS) zu deaktivieren?

Um RDS zu deaktivieren, setze den Wert von fDenyTSConnections auf 1. Hier ein Beispiel für den zu verwendenden Befehl:

      Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name fDenyTSConnections -Value 1
      

Warum erhalte ich eine „Type:“-Eingabeaufforderung, wenn ich versuche, einen Registrierungsschlüssel mit PowerShell hinzuzufügen?

Die Eingabeaufforderung Type: erscheint normalerweise, weil ein PowerShell-Cmdlet ohne alle erforderlichen Parameter ausgeführt wurde oder ein Syntaxfehler im Befehl vorliegt.

Was soll ich tun, wenn der Registrierungspfad beim Hinzufügen eines neuen Elements in PowerShell nicht existiert?

Wenn der gewünschte Pfad nicht existiert, kannst du ihn mit dem Cmdlet New-Item erstellen.

      New-Item -Path "HKCU:\Software\MyNewApplication"
      

Um dieses Problem zu vermeiden, verwende vor dem Hinzufügen eines neuen Elements mit PowerShell das Cmdlet Test-Path, um zu prüfen, ob der Registrierungspfad existiert.

      Test-Path -Path "HKCU:\Software\MyNewApplication"
      

Wie kann ich einen Registrierungswert in PowerShell erstellen oder aktualisieren und sicherstellen, dass der Schlüssel erstellt wird, wenn er nicht existiert?

Das folgende Skript verwendet die Cmdlets Test-Path, New-Item und Set-ItemProperty, um zu prüfen, ob ein Registrierungspfad existiert, und erstellt ihn, falls nicht, bevor der angegebene Wert festgelegt oder aktualisiert wird.

      # Define registry path, key name, and value

$Path = "HKCU:\Software\MyNewApplication"

$propertyName = "Version"

$propertyValue = "829"

# Check if the registry path exists, create if not

if (-Not (Test-Path $Path)) {

    Write-Output "Registry path does not exist. Creating it"

    New-Item -Path $Path -Force | Out-Null

}

# Set registry value

Set-ItemProperty -Path $Path -Name $propertyName -Value $propertyValue
      

Was ist der PowerShell-Befehl, der „reg add“ entspricht, um einen Registrierungsschlüssel und -wert hinzuzufügen oder zu aktualisieren?

Um in PowerShell einen Registrierungsschlüssel und -wert zu erstellen oder zu aktualisieren, kannst du das Cmdlet Set-ItemProperty verwenden.

      Set-ItemProperty -Path "HKCU:\Software\MyNewApplication" –Name “Version” -Value “839”
      

Warum sollte man vorsichtig sein, wenn man -Force mit New-Item in PowerShell verwendet?

Die Verwendung des Parameters -Force mit New-Item kann riskant sein, da sie unbeabsichtigtes Überschreiben vorhandener Elemente oder andere unerwartete Effekte verursachen kann. Es ist eine gute Praxis, vor der Verwendung von New-Item – insbesondere mit -Force – zu überprüfen, ob das Element existiert.

Welchen Befehl sollte ich verwenden, um mit PowerShell einen Registrierungsschlüssel zu einem bestimmten Pfad in HKCU hinzuzufügen?

Um mit PowerShell einen Registrierungsschlüssel zu einem bestimmten Pfad im HKCU (HKEY_CURRENT_USER)-Zweig hinzuzufügen, kannst du das Cmdlet New-Item wie hier gezeigt verwenden.

      New-Item -Path "HKCU:\Software\MyNewApplication"
      

Dein kostenloses Windows-Registry-Tutorial

Mehr erfahren


Teilen auf

Erfahren Sie mehr

Über den Autor

Asset Not Found

Tyler Reese

VP of Product Management, CISSP

Mit mehr als zwei Jahrzehnten in der Software-Sicherheitsbranche ist Tyler Reese bestens vertraut mit den sich schnell entwickelnden Identitäts- und Sicherheitsherausforderungen, denen Unternehmen heute gegenüberstehen. Derzeit ist er als Produktleiter für das Netwrix Identity and Access Management Portfolio tätig, wo seine Aufgaben die Bewertung von Markttrends, die Festlegung der Richtung für die IAM-Produktlinie und letztendlich die Erfüllung der Bedürfnisse der Endanwender umfassen. Seine berufliche Erfahrung reicht von IAM-Beratung für Fortune-500-Unternehmen bis hin zur Arbeit als Unternehmensarchitekt eines großen Direkt-an-Verbraucher-Unternehmens. Derzeit hält er die CISSP-Zertifizierung.