CMD betiği aracılığıyla kayıt defteri anahtarı veya değeri silinsin mi?


17

.cmdWindows kayıt defterinde belirli bir kayıt defteri anahtarının komut dosyasının silinmesini sağlamak için, üretimde olan bir komut dosyasını nasıl düzenlerim ?

Birincisi, bu mümkün mü ve ikincisi (eğer mümkün değilse) bir .regdosya oluşturabilir ve o dosyayı dosyadan çalıştırabilir .cmdmiyim?

.cmdBetik içinden, çalışmıyor:

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

Bu yöntem de benim için işe yaramadı:

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

Sonra .regdosyanın içinden:

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

1
Bir .reg dosyası kullanarak, hatta bir ağ sürücüsünden bile iyi çalışması gerekir. Olmazsa, umarım UAC'ye veya diğer güvenlik önlemlerine bağlı olur.
William Hilsum

Yanıtlar:


25

.Reg dosyalarını oluşturmak ve almak yerine REG komutunu kullanmanızı tavsiye ederim .

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

veya

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

Bu komutlar doğrudan batch ( .cmd) dosyasına girilebilir .


15

Gibi burada açıklanan ve Microsoft tarafından burada "kayıt defteri girdilerini kaldırma" altında, bir kaldırabilirsiniz anahtar bir eksi koyarak "-" Böyle bir anahtarın önünde:

[-HKEY_LOCAL_MACHINE\SOFTWARE\YourSoft\MyKey]

Ve bir girişi kaldırmak için , = char öğesinden sonra eksi "-" koyun:

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

Not: Bunlar sadece örnek anahtarlardır. Aslında işe yaramazlar.


Gerçekten de işe yarıyor.
Peter Mortensen


@Peter Mortensen Bu daha resmi bir referans. Paylaşım için teşekkürler.
Bruno Bieri

ironik bir şekilde bu microsoft support link şu anda "/ app / content 'Uygulamasında Sunucu Hatası" veriyor.
sdjuan

@sdjuan Microsoft Destek bağlantısı tekrar çalışıyor.
Bruno Bieri,

4

REG komutlarını kullanarak bunu bir .cmd dosyasında yapabildiğiniz için başka bir komut dosyası kullanmaktan kaçınırdım .

Buna benzer bir şey yapabilirsiniz:

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram"

Yalnızca belirli girişleri silmek istiyorsanız /v "EntryName", anahtara giden yoldan sonra bir argüman eklemelisiniz . Örneğin:

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

Bunların her ikisi de değerleri silmeden önce uyarı yapılmasına neden olacaktır. Bundan kaçınmak için, /fsonunda tartışmayı kullanmalısınız .

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram" /f

Teşekkür ederim. İnternetteki tek yer, hangi alt anahtarın referansını bulabildiğimi bulabildim.
square_eyes

3

Aşağıdaki yöntemi kullanıyorum. Bu, yardımcı olabilecek Windows XP için bir MRU ripperinin bir parçasıdır . Bu, CMD'den veya kısayoldan çalıştırılan toplu iş dosyasının metnidir. Basit yankı yönlendirmelerini kullanarak bir kayıt defteri dosyası oluşturur, ardından içe aktarır.

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"

Kodlayıcı değilim, sadece kendim için bazı toplu işler yapıyorum, bu yüzden sık sık yazdıklarımı bile okuyamıyorum, ancak bunu başka bir şey yapmak için şablon olarak kullanırdım.

echos(Yönlendirilir >ile tek bir dosyaya) >birinci yönlendirme için ve >>aynı dosyaya eklemek. -İşareti bir kayıt defteri girdisini kaldırmak için kullanılır. Muhtemelen son satırdan ayrılmak ve içe aktarmadan önce oluşturduğu dosyayı görüntülemek iyi olacaktır. İthalat sessizce yapılabilir, ancak bunu kendim yapmayacağım.

Feragatname: Bir kişi kayıt defteri girişlerini kaldırarak sisteme ciddi şekilde zarar verebileceğinden, sistem arızalandığında sistemi geri verebilecek bir disk görüntüsü yedeklemesi gerekir.

Uygun izinler, yükseltmeler ve kayıt defterindeki bazı girişler, yalnızca kullanıcının önemleri nedeniyle izinleri ayarlamadan onları yok etmesine izin vermeyecektir.

İşte sadece eğlence için eklenen "Kullanıcıya sor" bölümü.

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
Vista + 'da bu yöntem UAC'yi çağırır. ve kullanıcının bu işlemi kabul etmesi veya reddetmesi gerekir. Senaryoyu Yönetici olarak çalıştırmak bu
atlamayı atlatacaktır

1
% USERPROFILE% \ Local Settings \ Temp kullanmamalısınız, ancak% TMP% kullanmalısınız. eski sadece İngiliz sistemlerinde çalışıyor
kinokijuf

@kinokijuf Feexed, bu şekilde çok daha hoş görünüyor. Muhtemelen benim için sistem diskinde tutulacak şekilde ayarlanmış, çünkü Temps'i ramdisk'e ya da zaman zaman veri disklerine gönderdim.
Psycogeek

1

Windows 7 kullanıyorum ve CMD'den elde ettiğim şey:

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

Veya, bazı algoritmaları bu algoritma ile SİLECEĞİZ veya bazı değerleri DEĞİŞTİRebileceğimizi düşünüyorum:

  1. Silmek / değiştirmek istediğiniz anahtarların / değerlerin kayıt defteri konumunu bir dosyaya verin (File01.reg).
  2. Uygun anahtarı / değeri düzenleyin / değiştirin ve yeni dosyaya kaydedin (File02.reg).
  3. Bu değiştirilmiş dosyayı (File02.reg) Windows Kayıt Defteri'ne alın.

EXPORT kayıt defterine referans.

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

IMPORT kayıt defterine referans.

>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

İyileştirme için parlak fikirler bekliyoruz. :) :) :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.