Excluir chave do registro ou valor através de um script CMD?

16

Como faço para editar um arquivo de script .cmd já em produção, para que o script exclua uma determinada chave do registro do Registro do Windows?

Em primeiro lugar, isso é possível, e em segundo lugar (se isso não for possível), eu poderia criar um arquivo .reg e executar esse arquivo com o arquivo .cmd ?

De dentro do script .cmd , não está funcionando:

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

Este método não funcionou para mim:

cmd "\networkdrive\regfiles\deleteSampleKey.reg"

Então, de dentro do arquivo .reg :

Windows Registry Editor Version 5.00
[
-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
]
    
por Derek 19.01.2012 / 12:11

5 respostas

23

Eu recomendaria usar o comando REGISTRAR , em vez de criar e importar arquivos .reg.

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

ou

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

Esses comandos podem ser inseridos diretamente no arquivo em lote ( .cmd ).

    
por 26.03.2012 / 13:08
14

Como descrito aqui e aqui da Microsoft em" Removendo entradas de registro ", você pode remover uma chave colocando menos " - " na frente de uma chave como essa:

[-HKEY_LOCAL_MACHINE\SOFTWARE\YourSoft\MyKey]

E para remover uma entrada , insira menos "-" após o = caractere assim:

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

Nota: Essas são apenas teclas de exemplo. Eles não vão funcionar de verdade.

    
por 16.02.2016 / 15:32
3

Eu uso o seguinte método. Isso faz parte de um ripper MRU para o Windows XP, o que pode ajudar. Este é o texto de um arquivo em lotes, executado a partir do CMD ou de um atalho. Ele cria um arquivo de registro usando redirecionamentos simples de eco e o 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"

Eu não sou um programador, apenas faço algumas coisas em lote para mim, então muitas vezes nem consigo ler o que escrevi, mas eu usaria isso como um modelo para fazer outra coisa.

Os echos são redirecionados ( > ) para um arquivo, com o único > para o primeiro redirecionamento e >> para anexar ao mesmo arquivo. O sinal - é usado para remover uma entrada do registro. Provavelmente seria bom deixar a última linha e visualizar o arquivo criado antes da importação. A importação pode ser feita silenciosamente, mas eu não farei isso sozinho.

Disclaimer: Como uma pessoa pode causar sérios danos ao sistema removendo entradas do registro, um backup de imagem de disco que possa retornar o sistema quando o sistema falhar é necessário.

Permissões adequadas, elevações e algumas entradas no registro não apenas permitirão que o usuário as destrua, sem definir as permissões, devido à sua importância.

Aqui está uma parte "pergunte ao usuário", adicionada apenas por diversão.

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
    
por 19.01.2012 / 12:25
3

Eu evitaria usar outro script como você pode fazer isso em um arquivo .cmd usando o REG .

Você pode fazer algo semelhante a isto:

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram"

Se você quiser excluir somente entradas específicas, adicione um argumento /v "EntryName" após o caminho da chave. E. g:

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

Ambos causarão um aviso antes de excluir os valores. Para evitar isso, você deve usar o argumento /f no final.

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram" /f
    
por 16.02.2016 / 15:57
1

Estou usando o Windows 7 e é isso que consegui com o 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

Ou, acho que podemos EXCLUIR algumas chaves ou MODIFICAR alguns valores por este algoritmo:

  1. Exportar o local do registro das chaves / valores que queremos excluir / modificar em um arquivo (File01.reg).
  2. Edite / modifique a chave / valor apropriado e salve no novo arquivo (File02.reg).
  3. Importe esse arquivo modificado (File02.reg) para o Registro do Windows.

Referência ao registro EXPORT.

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

Referência ao registro IMPORT.

>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

Idéias mais brilhantes para melhoria são bem vindas. :) :):)

    
por 08.08.2014 / 07:42