it-swarm.com.de

Registrierungsschlüssel oder Wert über ein CMD-Skript löschen?

Wie bearbeite ich eine bereits in Produktion befindliche .cmd-Skriptdatei, damit das Skript einen bestimmten Registrierungsschlüssel in der Windows-Registrierung löscht?

Ist dies überhaupt möglich und kann ich (falls dies nicht möglich ist) eine .reg-Datei erstellen und diese Datei mit der .cmd-Datei ausführen?

Innerhalb des .cmd Skripts funktioniert es nicht:

del "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CurrentVersion\SampleKey]"

Diese Methode hat auch bei mir nicht funktioniert:

cmd "\\networkdrive\regfiles\deleteSampleKey.reg"

Dann aus der .reg-Datei:

Windows Registry Editor Version 5.00
[
-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
]
17
Derek

Ich würde empfehlen, den Befehl REG zu verwenden, anstatt REG-Dateien zu erstellen und zu importieren.

reg delete "HKCU\Some\Registry\Path" /f

oder

reg delete "HKLM\Some\Registry\Path" /f

Diese Befehle können direkt in die Batch-Datei (.cmd) eingegeben werden.

25
Patrick Seymour

Wie hier und hier von Microsoft unter "Registry-Einträge entfernen" beschrieben, Sie können einen Schlüssel entfernen, indem Sie ein Minuszeichen "-" vor ein setzen Schlüssel so:

[-HKEY_LOCAL_MACHINE\SOFTWARE\YourSoft\MyKey]

Und um einen Eintrag zu entfernen, setzen Sie ein Minuszeichen "-" nach das Zeichen = so wie das:

[HKEY_LOCAL_MACHINE\SOFTWARE\YourSoft\MyKey]
"MyEntry"=-

Hinweis: Dies sind nur Beispielschlüssel. Sie werden nicht wirklich funktionieren.

15
Bruno Bieri

Ich würde es vermeiden, ein anderes Skript zu verwenden, da Sie dies in einer .cmd-Datei mit den Befehlen REG ausführen können .

Sie können etwas Ähnliches tun:

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram"

Wenn Sie nur bestimmte Einträge löschen möchten, sollten Sie nach dem Pfad zum Schlüssel ein /v "EntryName"-Argument einfügen. Z.B:

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram" /v "EntryName"

In beiden Fällen wird eine Warnung ausgegeben, bevor die Werte gelöscht werden. Um dies zu vermeiden, sollten Sie am Ende das Argument /f verwenden.

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram" /f
4
Draganko

Ich benutze die folgende Methode. Dies ist Teil eines MRU Rippers für Windows XP, der möglicherweise Abhilfe schafft. Dies ist der Text einer Stapeldatei, die über CMD oder eine Verknüpfung ausgeführt wird. Es erstellt eine Registrierungsdatei mit einfachen Echoumleitungen und importiert sie dann.

REM *** START REGISTRY SHREDDER ***
ECHO CREATING MRU REGISTRY
ECHO .
 ECHO > "%TMP%\MRUKILL.reg" Windows Registry Editor Version 5.00
ECHO >> "%TMP%\MRUKILL.reg" [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Doc Find Spec MRU]
ECHO >> "%TMP%\MRUKILL.reg" [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FindComputerMRU]

REM ***  IMPORT THAT REG TO WIPE OUT THEM KEYS AND VALUES ****
regedit "%TMP%\MRUKILL.reg"

Ich bin kein Programmierer, ich mache nur ein paar Sachen für mich selbst, deshalb kann ich oft nicht einmal lesen, was ich geschrieben habe, aber ich würde das als Vorlage verwenden, um etwas anderes zu tun.

Die echos wird in eine Datei umgeleitet (>), wobei der einzelne > für die erste Umleitung und der >> an dieselbe Datei angehängt werden. Das Zeichen - wird zum Entfernen eines Registrierungseintrags verwendet. Es wäre wahrscheinlich gut, die letzte Zeile wegzulassen und die erstellte Datei vor dem Import anzuzeigen. Der Import kann im Hintergrund erfolgen, aber ich werde das nicht selbst tun.

Haftungsausschluss: Da eine Person beim Entfernen von Registrierungseinträgen schwerwiegende Schäden am System verursachen kann, ist eine Disk-Image-Sicherung erforderlich, die das System zurückgeben kann, wenn das System ausfällt.

Mit den richtigen Berechtigungen, Erhöhungen und einigen Einträgen in der Registrierung kann der Benutzer sie aufgrund ihrer Wichtigkeit nicht nur zerstören, ohne die Berechtigungen festzulegen.

Hier ist ein Teil "Benutzer fragen", der nur zum Spaß hinzugefügt wurde.

ECHO
 REM *** ASK the USER FIRST ***  
ECHO  DO YOU WANT TO DELETE REGISTRY MRUS?
SET /P Choice2=type "Y" to Mangle your registry, - -
ECHO . 
IF /I "%Choice2%"=="Y" GOTO SHREDD
ECHO OK WELL THEN I WON'T
ECHO By By 
   REM *** USER DECIDED AGAINST IT ***
ECHO .
PAUSE
GOTO FINISH
3
Psycogeek

Ich benutze Windows 7 und das habe ich durch CMD bekommen:

Fri 08/08/2014  8:13:51.72 | C:\Users\MrCMD
>reg.exe delete /?

REG DELETE KeyName [/v ValueName | /ve | /va] [/f]

  KeyName    [\\Machine\]FullKey
    Machine  Name of remote machine - omitting defaults to the current machine.
             Only HKLM and HKU are available on remote machines.
    FullKey  ROOTKEY\SubKey
    ROOTKEY  [ HKLM | HKCU | HKCR | HKU | HKCC ]
    SubKey   The full name of a registry key under the selected ROOTKEY.

  ValueName  The value name, under the selected Key, to delete.
             When omitted, all subkeys and values under the Key are deleted.

  /ve        delete the value of empty value name (Default).

  /va        delete all values under this key.

  /f         Forces the deletion without Prompt.

Examples:

  REG DELETE HKLM\Software\MyCo\MyApp\Timeout
    Deletes the registry key Timeout and its all subkeys and values

  REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU
    Deletes the registry value MTU under MyCo on ZODIAC

Oder ich denke, wir können mit diesem Algorithmus einige Schlüssel LÖSCHEN oder einige Werte ÄNDERN:

  1. Exportieren Sie den Registrierungsspeicherort der Schlüssel/Werte, die gelöscht/geändert werden sollen, in eine Datei (File01.reg).
  2. Bearbeiten/ändern Sie den entsprechenden Schlüssel/Wert und speichern Sie ihn in einer neuen Datei (File02.reg).
  3. Importieren Sie die geänderte Datei (File02.reg) in die Windows-Registrierung.

Verweis auf die EXPORT-Registrierung.

Fri 08/08/2014  8:24:53.19 | C:\Users\mardir01
>reg.exe export /?

REG EXPORT KeyName FileName [/y]

  Keyname    ROOTKEY[\SubKey] (local machine only).
    ROOTKEY  [ HKLM | HKCU | HKCR | HKU | HKCC ]
    SubKey   The full name of a registry key under the selected ROOTKEY.

  FileName   The name of the disk file to export.

  /y       Force overwriting the existing file without Prompt.

Examples:

  REG EXPORT HKLM\Software\MyCo\MyApp File01.reg
    Exports all subkeys and values of the key MyApp to the file File01.reg

Verweis auf die IMPORT-Registrierung.

>reg.exe import /?

REG IMPORT FileName

  FileName  The name of the disk file to import (local machine only).

Examples:

  REG IMPORT File02.reg
    Imports registry entries from the file File02.reg

Bessere Verbesserungsvorschläge sind willkommen. :) :) :)

1
Rhak Kahr