Registrierungs-Editor sperren und freigeben
Zeigt, ob der Registrierungs-Editor (regedit) für den aktuellen Benutzer gesperrt ist, und sperrt oder entsperrt ihn per Menü (Richtlinie DisableRegistryTools). Weist auf zusätzliche, per Gruppenrichtlinie gesetzte Sperren hin. Keine Administratorrechte nötig.
SHA-256:
67cdc707eb6b3ed21c167ca5adb2e56d759eeafb77aa61200a4e919c8a0172b0 Code
So sieht die Datei aus, die Sie herunterladen (77 Zeilen). Die Kommentare oben im Skript erklären, was es tut.
<# : Friederich-IT - Registrierungs-Editor sperren oder freigeben
@echo off
setlocal
chcp 65001 >nul
title Registrierungs-Editor sperren / freigeben - Friederich-IT
set "FIT_SELF=%~f0"
powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "iex ([IO.File]::ReadAllText($env:FIT_SELF,[Text.Encoding]::UTF8))"
exit /b %errorlevel%
#>
# ==========================================================================
# Registrierungs-Editor sperren / freigeben Version 2.0, Oktober 2026
# https://friederich-it.de/downloads
#
# Sperrt oder entsperrt den Registrierungs-Editor (regedit) für den
# angemeldeten Benutzer und zeigt den aktuellen Status an.
# Registry: HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System
# Wert DisableRegistryTools (2 = gesperrt, nicht vorhanden = frei)
# Läuft ohne Administratorrechte. Funktioniert auch, wenn regedit
# bereits gesperrt ist. Ersetzt das alte VBScript (stürzte beim ersten
# Start ab, wenn der Wert noch nicht existierte).
# ==========================================================================
$ErrorActionPreference = 'Stop'
try { [Console]::OutputEncoding = [Text.Encoding]::UTF8 } catch {}
$pfad = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\System'
$name = 'DisableRegistryTools'
function Get-Sperre {
try { return [int](Get-ItemProperty -Path $pfad -Name $name -ErrorAction Stop).$name } catch { return 0 }
}
function Show-Status {
$w = Get-Sperre
Write-Host ' Status: ' -NoNewline
switch ($w) {
0 { Write-Host 'Registrierungs-Editor ist freigegeben' -ForegroundColor Green }
1 { Write-Host 'GESPERRT (Editor und stiller Import von .reg-Dateien)' -ForegroundColor Red }
2 { Write-Host 'GESPERRT (Editor; .reg-Dateien lassen sich still importieren)' -ForegroundColor Red }
default { Write-Host "unbekannter Wert $w" -ForegroundColor Yellow }
}
$gp = $false
try { $gp = $null -ne (Get-ItemProperty -Path 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System' -Name $name -ErrorAction Stop).$name } catch {}
if ($gp) { Write-Host ' Hinweis: Zusätzlich ist eine Sperre für alle Benutzer gesetzt (HKLM, meist per Gruppenrichtlinie).' -ForegroundColor Yellow }
}
while ($true) {
Clear-Host
Write-Host ''
Write-Host ' Registrierungs-Editor sperren / freigeben' -ForegroundColor Cyan
Write-Host ' =========================================' -ForegroundColor Cyan
Write-Host ''
Show-Status
Write-Host ''
Write-Host ' [1] Sperren'
Write-Host ' [2] Freigeben'
Write-Host ' [0] Beenden'
Write-Host ''
Write-Host ' Auswahl: ' -NoNewline
$k = [Console]::ReadKey($true).KeyChar
Write-Host $k
try {
switch ($k) {
'1' {
if (-not (Test-Path $pfad)) { New-Item -Path $pfad -Force | Out-Null }
New-ItemProperty -Path $pfad -Name $name -PropertyType DWord -Value 2 -Force | Out-Null
Write-Host ' Gesperrt. Gilt sofort für neu gestartete regedit-Fenster.' -ForegroundColor Green
}
'2' {
if ((Get-Sperre) -ne 0) { Remove-ItemProperty -Path $pfad -Name $name -Force }
Write-Host ' Freigegeben.' -ForegroundColor Green
}
'0' { exit }
default { Write-Host ' Bitte 1, 2 oder 0 drücken.' -ForegroundColor Yellow }
}
} catch { Write-Host " Fehler: $($_.Exception.Message)" -ForegroundColor Red }
Write-Host ' Taste drücken ...' -ForegroundColor DarkGray
[void][Console]::ReadKey($true)
}