2012-01-19 11:11:41 +0000 2012-01-19 11:11:41 +0000
18
18

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

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

Erstens, ist das überhaupt möglich, und zweitens (falls das nicht möglich ist), könnte ich eine .reg-Datei erstellen und diese Datei mit der .cmd-Datei ausführen?

Aus dem .cmd-Skript heraus funktioniert es nicht:

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

Diese Methode hat bei mir auch nicht funktioniert:

cmd "\networkdrive\regfiles\deleteSampleKey.reg"

Dann aus der .reg-Datei heraus:

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

Antworten (5)

26
26
26
2012-03-26 11:08:49 +0000

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.

15
15
15
2016-02-16 14:32:04 +0000

Wie hier und hier von Microsoft unter “Entfernen von Registrierungseinträgen” beschrieben, können Sie einen Schlüssel **key_ entfernen, indem Sie ein Minus “-” vor einen Schlüssel wie diesen setzen:

[-HKEY_LOCAL_MACHINE\SOFTWARE\YourSoft\MyKey]

Und um einen entry zu entfernen, setzen Sie ein Minus “-” nach dem Zeichen = wie folgt:

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

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

4
4
4
2016-02-16 14:57:58 +0000

Ich würde die Verwendung eines anderen Skripts vermeiden, da Sie dies in einer .cmd-Datei mit den Befehlen REG tun können.

Sie können etwas Ähnliches wie das hier 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 das Argument /v "EntryName" hinzufügen. Z. B.:

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

Beides führt dazu, dass vor dem Löschen der Werte eine Warnung ausgegeben wird. Um dies zu vermeiden, sollten Sie das Argument /f am Ende verwenden:

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram" /f
3
3
3
2012-01-19 11:25:35 +0000

Ich verwende die folgende Methode. Dies ist Teil eines MRU Rippers für Windows XP, der helfen könnte. Dies ist der Text einer Batch-Datei, die von CMD oder einer Verknüpfung aus gestartet wird. Er 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 Kodierer, ich mache nur ein paar Batch-Sachen für mich selbst, so daß ich oft nicht einmal lesen kann, was ich geschrieben habe, aber ich würde das als Vorlage für etwas anderes verwenden.

Die echos werden umgeleitet (>) in eine Datei, wobei die einzelne > für die erste Umleitung steht und >> an dieselbe Datei angehängt wird. Das Zeichen - wird verwendet, um einen Registrierungseintrag zu entfernen. Es wäre wahrscheinlich gut, die letzte Zeile wegzulassen und vor dem Importieren die erzeugte Datei anzusehen. Das Importieren kann stillschweigend erfolgen, aber ich werde das nicht selbst tun.

Haftungsausschluss: Da eine Person dem System ernsthaften Schaden zufügen kann, wenn sie Registrierungseinträge entfernt, ist ein Disk-Image-Backup erforderlich, das das System wiederherstellen kann, wenn das System ausfällt.

Ordnungsgemäße Berechtigungen, Erhöhungen und einige Einträge in der Registrierung erlauben es dem Benutzer aufgrund ihrer Wichtigkeit nicht, sie einfach zu zerstören, ohne die Berechtigungen festzulegen.

Hier ist ein “Fragen Sie den Benutzer” Teil, 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
1
1
1
2014-08-08 05:42:27 +0000

Ich verwende Windows 7 und das habe ich durch CMD erhalten:

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 MODIFIZIEREN:

  1. Exportieren Sie den Speicherort der Schlüssel/Werte, die wir löschen/ändern wollen, in eine Datei (Datei01.reg):
  2. Bearbeiten/Ändern Sie den entsprechenden Schlüssel/Wert und speichern Sie ihn in einer neuen Datei (Datei02.reg):
  3. Importieren Sie diese geänderte Datei (Datei02.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. :) :) :)