USB-Speicher sperren und freigeben
Menü zum Sperren, Freigeben und Prüfen: setzt die Windows-Richtlinie für Wechseldatenträger (USB-Sticks, externe Festplatten, Speicherkarten, auch CD/DVD). Maus, Tastatur und Drucker funktionieren weiter. Wirkt für alle Benutzer, benötigt Administratorrechte; ggf. Stick neu einstecken.
SHA-256:
40d6c63e9db245c099b68bfbcdc237ed4aa011807e39d767abc5994d4e65bdfb Code
So sieht die Datei aus, die Sie herunterladen (96 Zeilen). Die Kommentare oben im Skript erklären, was es tut.
@echo off
rem ==========================================================================
rem USB-Speicher sperren / freigeben Version 2.0, Oktober 2026
rem https://friederich-it.de/downloads
rem
rem Sperrt per Richtlinie den Zugriff auf Wechselspeicher (USB-Sticks,
rem externe Festplatten, Speicherkarten) fuer alle Benutzer dieses PCs -
rem oder hebt die Sperre wieder auf. Maus, Tastatur, Drucker usw. sind
rem nicht betroffen. Zeigt den aktuellen Status an.
rem Registry: HKLM\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices
rem Wert Deny_All (1 = gesperrt, nicht vorhanden = frei)
rem Benoetigt Administratorrechte (werden beim Start angefordert).
rem ==========================================================================
setlocal EnableExtensions
for /f "tokens=2 delims=:." %%c in ('chcp') do set "FIT_CP=%%c"
chcp 65001 >nul
title USB-Speicher sperren / freigeben - Friederich-IT
set "KEY=HKLM\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices"
net session >nul 2>&1
if not errorlevel 1 goto :menu
echo.
echo Administratorrechte werden angefordert ...
set "FIT_SELF=%~f0"
powershell -NoProfile -Command "try { Start-Process -FilePath $env:FIT_SELF -Verb RunAs -ErrorAction Stop } catch { exit 1 }"
if errorlevel 1 (
echo Abgebrochen: Ohne Administratorrechte geht es nicht.
pause
)
goto :ende
:menu
cls
echo.
echo USB-Speicher sperren / freigeben
echo ================================
echo.
call :status
echo.
echo [1] Wechselspeicher sperren
echo [2] Wechselspeicher freigeben
echo [3] Status neu anzeigen
echo [0] Beenden
echo.
choice /c 1230 /n /m " Auswahl: "
if errorlevel 4 goto :ende
if errorlevel 3 goto :menu
if errorlevel 2 goto :freigeben
if errorlevel 1 goto :sperren
goto :menu
:status
set "STATE=freigegeben"
for /f "tokens=3" %%v in ('reg query "%KEY%" /v Deny_All 2^>nul ^| find /i "Deny_All"') do if /i "%%v"=="0x1" set "STATE=GESPERRT"
if "%STATE%"=="GESPERRT" (
powershell -NoProfile -Command "Write-Host ' Status: Wechselspeicher sind GESPERRT' -ForegroundColor Red"
) else (
powershell -NoProfile -Command "Write-Host ' Status: Wechselspeicher sind freigegeben' -ForegroundColor Green"
)
exit /b 0
:sperren
echo.
reg add "%KEY%" /v Deny_All /t REG_DWORD /d 1 /f >nul 2>&1
if errorlevel 1 (
echo Fehler: Der Eintrag konnte nicht gesetzt werden.
) else (
echo Richtlinie wird angewendet ...
gpupdate /target:computer /force >nul 2>&1
echo Gesperrt. Bereits eingesteckte Geräte einmal abziehen und neu einstecken.
)
echo.
pause
goto :menu
:freigeben
echo.
reg delete "%KEY%" /v Deny_All /f >nul 2>&1
reg query "%KEY%" /v Deny_All >nul 2>&1
if not errorlevel 1 (
echo Fehler: Der Eintrag konnte nicht entfernt werden.
) else (
echo Richtlinie wird angewendet ...
gpupdate /target:computer /force >nul 2>&1
echo Freigegeben. Geräte einmal abziehen und neu einstecken.
echo Hinweis: Setzt eine Firmen-Gruppenrichtlinie die Sperre, kommt sie wieder.
)
echo.
pause
goto :menu
:ende
if defined FIT_CP chcp %FIT_CP% >nul
endlocal
exit /b 0