Укрощение реестра
Возникают ситуации, когда необходимо несколько раз переустанавливать тестируемую программу, а она при этом каждый раз при удалении оставляет в реестре набор ключей и значений, и при повторной установке поднимает старые настройки… Приходится каждый раз после удаления запускать редактор реестра и удалять эти ключи. Знакомая ситуация? Когда подобное случилось со мной, то моего терпения хватило совсем не на долго. И в результате изучения доступных материалов и нескольких экспериментов на свет появился файл “remove-keys.bat” который удалял ключи оставленные программой.
Из командной строки можно управлять реестром Windows, а именно можно добавлять ключи и параметры, удалять их, сравнивать, сохранять в файл и восстанавливать из файла.
1. Добавление ключей и параметров:
Для добавления ключа используется команда "REG add".
Записывается: reg add ИмяКлюча
Если в имени ключа содержатся пробелы – путь нужно взять в кавычки.
Пример:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Apple Computer, Inc.\QuickTime\Installed Files"
При добавлении параметров команда записывается следующим образом:
reg add ИмяКлюча /v ИмяПараметра /t ТипПараметра /d ЗначениеПараметра
Тип параметра может быть: REG_BINARY, REG_SZ, REG_DWORD, REG_MULTI_SZ, REG_EXPAND_SZ
Как и в случае с ключом, если значение или имя параметра содержат пробелы – необходимы кавычки.
Пример:
reg add "HKEY_CURRENT_USER\Control Panel\Current" /v "Color Schemes" /t "REG_SZ" /d "Windows Standard"
2. Удаление ключей и параметров:
Теперь попробуем удалить все что мы создали (и не только):
Для удаления используется кооманда “REG delete”
Записывается: reg delete ИмяКлюча
Ситуация с пробелами аналогична прдедыдущей, если есть пробелы – ставим кавычки.
Пример:
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Apple Computer, Inc.\QuickTime\Installed Files"
Если же удалять весь ключ нет необходимости, а нужно удалить только один или несколько параметров – используем уже знакомую опцию “/v”
Пример:
reg add "HKEY_CURRENT_USER\Control Panel\Current" /v "Color Schemes"
Указывать тип и значение параметра не нужно.
При выполнении команды, появится запрос на подтверждение действия, для того, чтобы выполнить действие без запроса нужно добавить опцию /f
Оговорюсь, что при выполнении команд можно использовать как полные названия ветвей реестра, так и сокращенные:
HKEY_CURRENT_USER = HKCU
HKEY_LOCAL_MACHINE = HKLM
HKEY_CLASSES_ROOT = HKCR
HKEY_USERS = HKU
HKEY_CURRENT_CONFIG = HKCC
Несколько не столь часто используемых команд:
REG query – проверка наличия ключа в реестре
REG compare – сравнение ключей
REG copy – копирование ключа по указанному пути на локальной или удаленнной сисиеме
REG restore – восстановление ключа из файла
REG save – сохранение ключа в файл
3. Запрос наличия ключа:
Запись команды: REG query ИмяКлюча
Пример:
reg query "HKEY_CURRENT_USER\Control Panel\Current"
Если ключ существует – ответом будет строка типа:
! REG.EXE VERSION 3.0
HKEY_CURRENT_USER\Control Panel\Current
Color Schemes REG_SZ Windows Standard
Если ключа не существует – ответ:
Error: The system was unable to find the specified registry key or value
Дла запроса конкретного параметра используем опцию “/v ИмяПараметра”.
4. Сравнение ключей:
Может быть полезна при сравнении ключей реестра на двух удаленных машинах.
Запись команды: REG compare ИмяКлюча1 ИмяКлюча2
Пример:
reg compare \\Computer1\HKLM\SYSTEM\CurrentControlSet\Services\DNS
\\Computer2\HKLM\SYSTEM\CurrentControlSet\Services\DNS
При совпадении ключей получаем ответ:
Results Compared: Identical
The operation completed successfully.
При не совпадении:
Results Compared: Different
The operation completed successfully
5. Сохранение ключа в файл:
Сразу оговорюсь, что структура сохраняемого файла отличается от файла создаваемого при экспорте ключа из regedit и просто запустив файл нельзя добавить информацию в реестр. Информация добавляется с помощью команды восстановления из файла, которая описана ниже.
Запись команды сохранения ключа в файл:
reg save ИмяКлюча “ИмяФайла” – по умолчанию файл сохраняется в корневом каталоге, поэтому лучше указывать путь.
Пример:
reg save “HKEY_CURRENT_USER\Control Panel\Current” C:\temp\testsaving.hiv
Если операция выполнена успешно – получаем ответ:
The operation completed successfully
В случае ошибки сообщение зависит от причины возникновения ошибки :)
6. Восстановление ключа из файла:
Запись команды: reg restore ИмяКлюча “ИмяФайла”
Пример:
reg restore “HKEY_CURRENT_USER\Control Panel\Current” C:\temp\testsaving.hiv
7. Копирование ключа:
Может быть использована для копирования ключа на удаленную машину.
Запись команды: reg copy ИмяКлюча1 ИмяКлюча2
Пример:
reg copy HKLM\SYSTEM\CurrentControlSet\Services\DNS
\\Computer\HKLM\SYSTEM\CurrentControlSet\Services\DNS
Ну и в самом конце хочу напомнить, что бекапить файлы реестра бывает очень полезно, особенно при частых экспериментах с оным.
Удачи!
При написании были использованы материалы опубликованные в книге Microsoft Windows Command-Line Administrator’s Pocket Consultant by William R. S
Впервые статья была опубликована в Даниила Мясникова.
Software Review - by Dmitro Podzyvalovsky » Kill… Process ответил:
16 января, 2006 в 19:51
[...] Название: KillProcess Объем: 16 кб Адрес: http://www.softtreetech.com/24×7/extras/KillProcess.exe Установка: 1. Скачиваем файл 2. Складываем его в папочку с системой, обычно это “C:Windows” (если есть желание запускать не из системной папки – придется создать алиас, о создании алиасов написано здесь.) [...]
Software Review » Win+R или TypeAndRun ответил:
20 сентября, 2006 в 15:20
[...] Работа с системными алиасами: TypeAndRun отлично работает с системными алиасами, и позволяет быстро создавать новые. Когда-то я уже писал о создании алиасов в Windows[1] , до сих пор не считаю этот способ сложным, но TypeAndRun позволяет делать это, действительно, в несколько кликов. В контекстное меню встраивается пункт “Add to TypeAndRun”[2] , с помощью которого файл легко добавляется в список алиасов[3], который хранится в конфиге программы. Кстати, тот факт, что TypeAndRun не требует установки, а алиасы хранятся в конфиге, а не в реестре, упрощает жизнь пользователя переустановившего систему. Ведь устанавливая софт уже не придется думать о том, что нужно где-то что-то прописывать, чтобы все запускалось из командной строки. Еще одно удобство – это перебор алиасов по TAB, т.е. достаточно ввести первую букву и перебором добраться до нужного алиаса, а можно ничего не вводить – тогда пролистается весь список. Полезной мелочью, оказалась возможность открытия сайтов через TypeAndRun, причем в настройках программы можно указать броузер, в котором будут открываться адреса набранные в командной строке программы. [...]