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

Cancellare una chiave di registro o un valore tramite uno script CMD?

Come si modifica un file di script .cmd già in produzione, per far sì che lo script cancelli una determinata chiave di registro nel registro di Windows?

In primo luogo, è possibile, e in secondo luogo (se non è possibile), potrei creare un file .reg ed eseguirlo con il file .cmd?

Dall'interno dello script .cmd, non funziona:

del "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CurrentVersion\SampleKey]"
``` ```
cmd "\networkdrive\regfiles\deleteSampleKey.reg"

Questo metodo non ha funzionato nemmeno per me:

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


Poi dall'interno del file `.reg`: 


&001

Risposte (5)

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

Consiglierei di utilizzare il comando REG, piuttosto che creare e importare file .reg.

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

o

reg delete "HKLM\Some\Registry\Path" /f
``` &001 


Questi comandi possono essere inseriti direttamente nel file batch (`.cmd`).
15
15
15
2016-02-16 14:32:04 +0000

Come descritto qui e qui da Microsoft alla voce “Rimozione delle voci di registro”, è possibile rimuovere una chiave ponendo un meno “-” davanti a una chiave come quella:

[-HKEY_LOCAL_MACHINE\SOFTWARE\YourSoft\MyKey]

E per rimuovere una ingresso , posizionare un meno “-” dopo il = carattere come quello:

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

Nota: Queste sono solo chiavi di esempio. In realtà non funzioneranno.

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

Eviterei di usare un altro script perché si può fare questo in un file .cmd usando i comandi REG .

Si può fare qualcosa di simile a questo:

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram"

Se si desidera cancellare solo voci specifiche allora si dovrebbe aggiungere un argomento /v "EntryName" dopo il percorso della chiave. E. g:

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

Entrambi causeranno un avviso prima di cancellare i valori. Per evitare ciò, si dovrebbe usare l'argomento /f alla fine.

&001

3
3
3
2012-01-19 11:25:35 +0000

Utilizzo il seguente metodo. Questo fa parte di un MRU ripper per Windows XP, che potrebbe aiutare. Questo è il testo di un file batch, che viene eseguito da CMD o da una scorciatoia. Crea un file di registro usando semplici redirezioni di eco, poi lo importa.

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"

Non sono un codificatore, faccio solo alcune cose in batch per me stesso, quindi spesso non riesco nemmeno a leggere quello che ho scritto, ma lo userei come modello per fare qualcos'altro.

Gli echos sono reindirizzati (>) ad un file, con il singolo > per il primo reindirizzamento, e >> da aggiungere allo stesso file. Il segno - viene utilizzato per rimuovere una voce di registro. Probabilmente sarebbe bene lasciare l'ultima riga e visualizzare il file che ha creato prima dell'importazione. L'importazione può essere fatta in silenzio, ma non lo farò io stesso.

Disclaimer: Poiché una persona può fare qualche danno grave al sistema rimuovendo le voci del Registro di sistema, è necessario un backup dell'immagine del disco che può restituire il sistema quando il sistema fallisce.

Permessi corretti, elevazioni, e alcune voci nel Registro di sistema non solo permetterà all'utente di distruggerle, senza impostare i permessi, a causa della loro importanza.

Ecco una parte “chiedi all'utente”, aggiunta solo per divertimento.

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

Sto usando Windows 7 e questo è quello che ho ottenuto attraverso 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

o, penso che possiamo CANCELLARE alcune chiavi o MODIFICARE alcuni valori con questo algoritmo:

  1. 1. Esportare la posizione del registro di sistema delle chiavi/valori che vogliamo cancellare/modificare in un file (File01.reg).
  2. 2. Modificare/modificare la chiave/valore appropriata e salvarla in un nuovo file (File02.reg).
  3. 3. Importare il file modificato (File02.reg) nel registro di Windows.

Riferimento al registro di esportazione.

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

Riferimento al registro di importazione.

>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
``` &001 


Sono benvenute idee più brillanti per il miglioramento. :) :) :)