Hapus kunci atau nilai registri melalui skrip CMD?

18

Bagaimana cara mengedit .cmdfile skrip yang sudah dalam produksi , agar skrip menghapus kunci registri tertentu di registri Windows?

Pertama, apakah ini bahkan mungkin, dan kedua (jika itu tidak mungkin), dapatkah saya membuat .regfile dan mengeksekusi file itu dengan .cmdfile?

Dari dalam .cmdskrip, itu tidak berfungsi:

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

Metode ini juga tidak berhasil untuk saya:

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

Kemudian dari dalam .regfile:

Windows Registry Editor Version 5.00
[
-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
]
Derek
sumber
1
menggunakan file .reg, bahkan dari drive jaringan harus berfungsi dengan baik. Jika tidak, maka, saya berharap itu ke UAC atau langkah-langkah keamanan lainnya.
William Hilsum

Jawaban:

26

Saya akan merekomendasikan menggunakan perintah REG , daripada membuat dan mengimpor file .reg.

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

atau

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

Perintah-perintah ini dapat dimasukkan langsung ke file batch ( .cmd).

Patrick Seymour
sumber
15

Seperti yang dijelaskan di sini dan di sini oleh Microsoft di bawah "Menghapus entri registri", Anda dapat menghapus kunci dengan menempatkan tanda minus "-" di depan kunci seperti itu:

[-HKEY_LOCAL_MACHINE\SOFTWARE\YourSoft\MyKey]

Dan untuk menghapus entri , tempatkan tanda minus "-" setelah = char seperti itu:

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

Catatan: Itu hanya kunci contoh. Mereka tidak akan benar-benar bekerja.

Bruno Bieri
sumber
Memang berhasil.
Peter Mortensen
1
Referensi lain adalah Cara menambah, mengubah, atau menghapus subkunci dan nilai registri dengan menggunakan file .reg (Microsoft, KB 310516).
Peter Mortensen
@Peter Mortensen Ini bahkan merupakan referensi yang lebih resmi. Terima kasih sudah berbagi.
Bruno Bieri
Ironisnya, tautan dukungan microsoft saat ini memberikan "Kesalahan Server dalam Aplikasi '/ aplikasi / konten'."
sdjuan
@djuan tautan Dukungan Microsoft berfungsi lagi.
Bruno Bieri
4

Saya akan menghindari menggunakan skrip lain karena Anda dapat melakukan ini dalam file .cmd menggunakan perintah REG .

Anda dapat melakukan sesuatu yang mirip dengan ini:

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram"

Jika Anda ingin menghapus hanya entri tertentu maka Anda harus menambahkan /v "EntryName"argumen setelah path ke kunci. E. g:

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

Kedua hal ini akan menyebabkan peringatan dikeluarkan sebelum menghapus nilai-nilai. Untuk menghindari itu, Anda harus menggunakan /fargumen di bagian akhir.

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram" /f
Marko Vejnovic
sumber
Terima kasih. Satu-satunya tempat di internet saya bisa menemukan referensi sub kunci.
square_eyes
3

Saya menggunakan metode berikut. Ini adalah bagian dari ripper MRU untuk Windows XP, yang mungkin membantu. Ini adalah teks dari file batch, yang dijalankan dari CMD atau dari jalan pintas. Ini membuat file registri menggunakan pengalihan gema sederhana, lalu mengimpornya.

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"

Saya bukan seorang pembuat kode, saya hanya melakukan beberapa tugas batch untuk diri saya sendiri, jadi saya sering tidak dapat membaca apa yang saya tulis, tetapi saya akan menggunakannya sebagai template untuk melakukan hal lain.

The echosdiarahkan ( >) ke file, dengan single >untuk pengalihan pertama, dan >>untuk menambahkan ke file yang sama. The -tanda digunakan untuk menghapus entri registry. Mungkin akan baik untuk meninggalkan baris terakhir, dan melihat file yang dibuatnya sebelum mengimpor. Mengimpor dapat dilakukan secara diam-diam, tetapi saya tidak akan melakukannya sendiri.

Penafian: Karena seseorang dapat melakukan kerusakan serius pada sistem menghapus entri registri, cadangan disk image yang dapat mengembalikan sistem ketika sistem gagal diperlukan.

Izin yang tepat, peningkatan, dan beberapa entri dalam registri tidak hanya akan memungkinkan pengguna untuk menghancurkannya, tanpa menetapkan izin, karena kepentingannya.

Inilah bagian "tanya pengguna", ditambahkan hanya untuk bersenang-senang.

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
Psycogeek
sumber
1
pada Vista + metode ini akan memanggil UAC. dan pengguna harus menerima atau menolak tindakan ini. Menjalankan skrip sebagai Admin akan mem-bypass itu
Piotr Kula
1
Anda tidak boleh menggunakan% USERPROFILE% \ Pengaturan Lokal \ Temp, tetapi% TMP%. yang pertama hanya bekerja pada sistem bahasa Inggris
kinokijuf
@kinokijuf Feexed, terlihat jauh lebih baik seperti itu juga. Mungkin diatur seperti itu untuk menyimpannya di disk sistem untuk saya, karena saya telah mengirim Temps ke ramdisk atau ke disk data di kali.
Psycogeek
1

Saya menggunakan Windows 7 dan inilah yang saya dapatkan melalui 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

Atau, saya pikir kita bisa HAPUS beberapa kunci atau MODIFY beberapa nilai dengan algoritma ini:

  1. Ekspor lokasi registri kunci / nilai yang ingin kita hapus / ubah menjadi file (File01.reg).
  2. Edit / modifikasi kunci / nilai yang sesuai dan simpan ke file baru (File02.reg).
  3. Impor file yang dimodifikasi (File02.reg) ke dalam Windows Registry.

Referensi ke registri EKSPOR.

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

Referensi ke registrasi IMPOR.

>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

Ide-ide cerah untuk perbaikan dipersilahkan. :) :) :)

Rhak Kahr
sumber