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

Registersleutel of waarde verwijderen via een CMD-script?

Hoe bewerk ik een reeds in productie genomen .cmd-scriptbestand, zodat het script een bepaalde registersleutel in het Windows-register kan verwijderen?

Ten eerste, is dit zelfs mogelijk, en ten tweede (als dat niet mogelijk is), kan ik een .reg bestand aanmaken en dat bestand uitvoeren vanuit het .cmd bestand?

Vanuit het .cmd script werkt het niet:

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

Deze methode heeft voor mij ook niet gewerkt:

cmd "\networkdrive\regfiles\deleteSampleKey.reg"

dan vanuit het .reg bestand:

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

Antwoorden (5)

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

Ik raad aan het REG commando te gebruiken, in plaats van .reg bestanden aan te maken en te importeren.

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

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

Deze commando’s kunnen direct in het batch (.cmd) bestand worden ingevoerd.

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

Zoals hier beschreven en hier door Microsoft onder “Verwijderen van registervermeldingen”, kunt u een key verwijderen door een minus“-” voor zo'n sleutel te plaatsen:

[-HKEY_LOCAL_MACHINE\SOFTWARE\YourSoft\MyKey]

En om een entry te verwijderen, plaatst u een minus “-” achter de = char zoals dat:

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

_Naarwijzing: Dit zijn slechts voorbeeldsleutels. Ze zullen niet echt werken.

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

Ik zou het gebruik van een ander script willen vermijden omdat je kan dit in een .cmd-bestand doen met de REG commando’s.

Je kunt iets dergelijks doen:

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram"

Als je alleen specifieke items wilt verwijderen, moet je een /v "EntryName"-argument toevoegen na het pad naar de toets. Bv. g:

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

Beide geven een waarschuwing voordat de waarden worden gewist. Om dat te voorkomen, moet u het /f-argument op het einde gebruiken.

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

Ik gebruik de volgende methode. Dit maakt deel uit van een MRU ripper voor Windows XP, dat zou kunnen helpen. Dit is de tekst van een batchbestand, dat wordt uitgevoerd vanaf CMD of vanaf een snelkoppeling. Het maakt een registerbestand met behulp van eenvoudige echo omleidingen, en importeert het vervolgens.

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"

Ik ben geen codeur, ik doe gewoon wat batch dingen voor mezelf, dus ik kan vaak niet eens lezen wat ik heb geschreven, maar ik zou dat gebruiken als een sjabloon om iets anders te doen.

De echos worden omgeleid (>) naar een bestand, met de enkele > voor de eerste omleiding, en >> om aan hetzelfde bestand toe te voegen. Het - teken wordt gebruikt om een registervermelding te verwijderen. Het zou waarschijnlijk goed zijn om de laatste regel weg te laten, en het aangemaakte bestand te bekijken voordat het wordt geïmporteerd. Het importeren kan geruisloos gebeuren, maar dat zal ik zelf niet doen.

Disclaimer: Omdat iemand het systeem ernstig kan beschadigen door registervermeldingen te verwijderen, is een disk image back-up nodig die het systeem kan teruggeven wanneer het systeem faalt.

Juiste rechten, verhogingen, en sommige vermeldingen in het register zullen de gebruiker niet alleen toestaan deze te vernietigen, zonder de rechten in te stellen, vanwege hun belang.

Hier is een “vraag de gebruiker” deel, toegevoegd voor de lol.

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

Ik gebruik Windows 7 en dit is wat ik kreeg via CMD:

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

Of, ik denk dat we enkele toetsen of MODIFY enkele waarden kunnen verwijderen door dit algoritme:

  1. 2. Exporteer register locatie van sleutels/waarden die we willen verwijderen/wijzigen in een bestand (File01.reg).
  2. 2. Bewerken/wijzigen van de juiste sleutel/waarde en opslaan in een nieuw bestand (Bestand02.reg).
  3. Importeer dat gewijzigde bestand (File02.reg) in het Windows register.

Verwijzing naar EXPORT-register.

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

Verwijzing naar IMPORT-register.

>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

Heldere ideeën voor verbetering zijn welkom. :) :) :)