Видалити ключ або значення реєстру за допомогою скрипту CMD?


18

Як редагувати вже .cmdвведений файл сценарію, щоб сценарій видалив певний ключ реєстру в реєстрі Windows?

По-перше, чи це можливо, а по-друге (якщо це неможливо), чи можу я створити .regфайл і виконати цей файл з ним .cmd?

Зсередини .cmdсценарію він не працює:

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

Цей метод також не працює для мене:

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

Потім зсередини .regфайлу:

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

1
використовуючи файл .reg, навіть з мережевого диска має працювати нормально. Якщо це не так, то, я думаю, це переходить до UAC або інших заходів безпеки.
Вільям Гілсум

Відповіді:


26

Я рекомендую використовувати команду REG , а не створювати та імпортувати .reg файли.

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

або

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

Ці команди можна вводити безпосередньо у .cmdфайл batch ( ).


15

Як описано тут і тут Microsoft у розділі "Видалення записів реєстру", ви можете видалити ключ , поставивши мінус "-" перед таким ключем:

[-HKEY_LOCAL_MACHINE\SOFTWARE\YourSoft\MyKey]

А щоб вилучити запис , поставте мінус "-" після знака "=":

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

Примітка. Це лише приклади ключів. Вони насправді не спрацюють.


Дійсно, це працює.
Пітер Мортенсен


@Peter Mortensen Це ще більш офіційна довідка. Дякую, що поділився.
Бруно Бієрі

За іронією долі, що посилання підтримки Microsoft в даний час дає "Помилка сервера в" / app / content 'Application ".
sdjuan

@sdjuan Посилання підтримки Microsoft знову працює.
Бруно Бієрі

4

Я б уникнув використання іншого скрипту, оскільки це можна зробити у файлі .cmd за допомогою команд REG .

Ви можете зробити щось подібне до цього:

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram"

Якщо ви хочете видалити лише певні записи, вам слід додати /v "EntryName"аргумент після шляху до ключа. E. g:

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

І те й інше спричинить попередження перед видаленням значень. Щоб уникнути цього, слід використовувати /fаргумент наприкінці.

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram" /f

Дякую. Єдине місце в мережі, я міг знайти те, на яке посилається під ключ.
square_eyes

3

Я використовую наступний метод. Це частина розпушувача MRU для Windows XP, що може допомогти. Це текст пакетного файлу, який запускається з CMD або з ярлика. Він створює файл реєстру за допомогою простих перенаправлень ехо, потім імпортує його.

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"

Я не кодер, я просто займаюся деякими партіями для себе, тому часто навіть не можу прочитати те, що написав, але я би використовував це як шаблон для чогось іншого.

echosПеренаправляються ( >) у файлі, з єдиним >для першого перенаправлення і >>додавати в той же файл. -Знак використовується для видалення запису реєстру. Можливо, було б добре залишити останній рядок і переглянути файл, створений перед імпортом. Імпорт можна зробити безшумно, але я сам цього не робитиму.

Відмова від відповідальності: Оскільки людина може завдати серйозної шкоди видаленню записів реєстру, необхідна резервна копія образу диска, яка може повернути систему, коли система не працює.

Належні дозволи, висоти та деякі записи в реєстрі не просто дозволять користувачеві знищувати їх, не встановлюючи дозволів, через їх важливість.

Ось частина "Запитати користувача", додана просто для розваги.

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 + цей метод буде викликати UAC. і користувач повинен буде прийняти або відхилити цю дію. Запуск сценарію в якості адміністратора обійде це, проте
Петро Кула,

1
не слід використовувати% USERPROFILE% \ Local Settings \ Temp, але% TMP%. колишній працює лише на англійських системах
kinokijuf

@kinokijuf Feexed, теж виглядає набагато приємніше. Напевно, було встановлено так, щоб тримати його на системному диску для мене, тому що я посилав Temps на ramdisk або на диски даних часом.
Psycogeek

1

Я використовую Windows 7, і ось що я отримав через 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

Або я думаю, що ми можемо ВИДАЛИТИ деякі клавіші або ЗМІНИТИ деякі значення за цим алгоритмом:

  1. Експорт розташування реєстрів ключів / значень, які ми хочемо видалити / змінити у файл (File01.reg).
  2. Відредагуйте / модифікуйте відповідний ключ / значення та збережіть у новому файлі (File02.reg).
  3. Імпортуйте цей змінений файл (File02.reg) в Реєстр Windows.

Посилання на реєстр 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

Посилання на реєстр 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

Більш яскраві ідеї для вдосконалення вітаються. :) :) :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.