Abrufen, Bearbeiten, Erstellen und Löschen von Registrierungsschlüsseln mit PowerShell

Administratoren können alle typischen Registrierungsvorgänge wahlweise über die gute alte Regedit-Benutzeroberfläche oder mit dem Dienstprogramm reg.exe ausführen. Zusätzlich dazu gibt es noch eine weitere Option: Windows PowerShell. PowerShell stellt zahlreiche Tools für die Interaktion mit der Microsoft Windows-Registrierung auf dem lokalen Computer oder per Remotezugriff zur Verfügung.

In diesem Artikel zeigen wir, wie Sie Registrierungsschlüssel mit PowerShell abrufen, bearbeiten, erstellen und löschen. Sie erfahren außerdem, wie Sie die Registrierung durchsuchen und mit PowerShell von einem Remotecomputer eine Verbindung zur Registrierung herstellen.

Lokales Abrufen der Registrierungsschlüsselwerte mit PowerShell

Um die Werte aller Registrierungsschlüssel auf einem lokalen Computer abzurufen, müssen Sie zunächst den Pfad zur Registrierung ermitteln. So zeigen Sie eine Liste aller lokalen Laufwerke an:

get-psdrive

Here is how to get a list of all the local drives

Wie Sie sehen können, sind zwei Einträge für die Registrierung vorhanden: HKEY_CURRENT_USER (HKCU) und HKEY_LOCAL_MACHINE (HKLM). Hierbei handelt es sich um zwei logische Schlüsselgruppen bzw. Strukturen in der Registrierung.

Sie können deshalb mit dem folgenden Befehl zum Registrierungshauptschlüssel des lokalen Computers navigieren:

cd HKLM:\

Alternativ können Sie mit dem Cmdlet „Set-Location“ als aktuellen Speicherort einen bestimmten Pfad in der Registrierung festlegen:

set-location -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\

Anschließend können Sie mit dem Cmdlet „Get-ChildItem“ alle Registrierungsschlüssel in der aktuellen Struktur mit ihren Eigenschaften ausgeben:

Get-childitem

Here is how to output all the registry keys in the current hive with their properties

Um die Parameter für einen bestimmten Schlüssel (z. B. den Schlüssel „Run“) anzuzeigen, verwenden Sie das Cmdlet „Get-Item“ und geben den Pfad an:

Get-Item -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Here is how to get the parameters for a specific key

Abrufen von Registrierungsschlüsselwerten per Remotezugriff mit PowerShell

Mit PowerShell können Sie eine Remoteverbindung zur Registrierung eines Computers herstellen und die Registrierung mit WinRM anzeigen. Hierzu verwenden Sie das Cmdlet „Invoke-Command“:

Invoke-Command –ComputerName dc1 –ScriptBlock { Get-ItemProperty -Path 'HKCU:\Software\System' -Name WorkingDirectory}

Bearbeiten der Registrierung per Remotezugriff mit PowerShell

Um eine Registrierung per Remotezugriff zu bearbeiten, müssen Sie zunächst mit dem Cmdlet „Enter-PSSession“ eine Verbindung zur Registrierung herstellen:

Enter-PSSession pdc -Credential Enterprise\T.Simpson

Das System fordert Sie auf, das Kennwort für das angegebene Benutzerkonto einzugeben. Nach der Authentifizierung können Sie auf dem Remotecomputer PowerShell-Befehle ausführen.

Durchsuchen der Registrierung mit PowerShell

Um nach bestimmten Schlüsseln in der Registrierung zu suchen, verwenden Sie ein Skript wie in der Abbildung unten. Damit wird die Registrierung nach Schlüsseln durchsucht, deren Name den Begriff „Netwrix“ enthält:

Set-Itemproperty -path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' -Name 'VMware User Process' -value 'C:\Program Files\VMware\VMware Tools\vmtoolsd.exe'

Bearbeiten der Registrierung mit PowerShell

Um einen Parameter für einen Registrierungsschlüssel zu ändern, verwenden Sie das Cmdlet „Set-ItemProperty“. Mit dem folgenden Befehl können Sie beispielsweise einen neuen Zeichenfolgenwert für den Parameter „VMware User Process“ des Schlüssels „Run“ festlegen:

Set-Itemproperty -path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' -Name 'VMware User Process' -value 'C:\Program Files\VMware\VMware Tools\vmtoolsd.exe'

Erstellen eines Registrierungsschlüssels mit PowerShell

Um einen Schlüssel zur Registrierung hinzuzufügen, verwenden Sie das Cmdlet „New-Item“. So erstellen Sie einen neuen Schlüssel namens „NetwrixKey“ in der Struktur „KEY_CURRENT_USER“:

New-Item –Path "HKCU:\dummy" –Name NetwrixKey

Here is how to add a key to the registry

Erstellen Sie nun einen Parameter namens „NetwrixParam“ für diesen neuen Schlüssel und legen Sie als Wert für diesen Parameter die Zeichenfolge „NetwrixValue“ fest:

New-ItemProperty -Path "HKCU:\dummy\NetwrixKey" -Name "NetwrixParam" -Value ”NetwrixValue”  -PropertyType "String"

Schauen Sie sich nun das Ergebnis in der Registrierung an:
Here is how to set a value to the string

Löschen eines Registrierungsschlüssels oder Parameters mit PowerShell

Sie werden nun den soeben erstellten Parameter „NetwrixKey“ mit dem Cmdlet „Remove-ItemProperty“ wieder löschen:

Remove-ItemProperty -Path "HKCU:\dummy\NetwrixKey" -Name "NetwrixParam"

Anschließend löschen Sie auch den Schlüssel „NetwrixKey“ selbst:

Remove-Item -Path "HKCU:\dummy\NetwrixKey" -Recurse

Der Parameter „–Recurse“ berechtigt PowerShell zur Löschung aller Unterschlüssel ohne zusätzliche Bestätigung (in diesem Beispiel wurden jedoch keine Unterschlüssel erzeugt).

Wenn Sie alle Unterschlüssel in dem angegebenen Schlüssel löschen möchten, ohne den Schlüssel selbst zu löschen, müssen Sie das Symbol „*“ am Ende des Pfads anfügen:

Remove-Item -Path "HKCU:\dummy\NetwrixKey\*" -Recurse

Umbenennen eines Registrierungsschlüssels oder Parameters mit PowerShell

Zur Umbenennung eines Registrierungsschlüssels verwenden Sie das Cmdlet „Rename-Item“:

Rename-Item -Path "HKCU:\dummy\NetwrixKey"  NetwrixNewKey

Um einen Parameter eines Registrierungsschlüssels umzubenennen, verwenden Sie das Cmdlet „Rename –ItemProperty“:

Rename-ItemProperty -Path "HKCU:\dummy\NetwrixKey" -Name "NetwrixParam" -NewName "NetwrixNewParam"

Zusammenfassung

Sie haben nun die grundlegenden Funktionen von Microsoft Windows PowerShell für die Verwaltung der Registrierung kennengelernt. Wie Sie sehen konnten, lassen sich Registrierungsschlüssel mit PowerShell relativ einfach und schnell verwalten. Denken Sie jedoch stets daran, dass bereits geringfügige Änderungen an der Registrierung Ihr System zum Absturz bringen können.

Bevor Sie Änderungen vornehmen, sollten Sie deshalb genau wissen, was Sie ändern, aktuelle Backups Ihres Systems und Ihrer Daten bereithalten sowie alle Änderungen überwachen. Netwrix Auditor for Windows Server kann Sie dabei unterstützen. Die Software überwacht alle Änderungen an der Windows-Registrierung, erfasst diese in Berichten und benachrichtigt Sie über Änderungen.

Tutorial zur Skripterstellung  mit Windows PowerShell für Einsteiger