1

Как получить доступ к реестру Windows из DOS?

Мне нужно получить доступ к реестру из DOS, пока я загружаюсь с загрузочного диска DOS.
Я обыскал весь интернет и нашел только Offline NT Password и редактор реестра, которые, как я понимаю, нельзя использовать в DOS.
Также я нашел RegView (из многих зеркал), который тоже не работает (я пробовал много инструкций).

Есть ли простой в использовании инструмент, такой как reg.exe, который может загружать кусты реестра,
так что я могу изменить значения реестра ?? Или какие-то рабочие инструкции ??

Примечание: у меня уже есть загрузочный диск, который может читать / писать на диски NTFS.

Заранее спасибо!

3 ответа3

1

Реестр Windows был создан спустя долгое время после прекращения работы DOS. Таким образом, нет никакого собственного способа сделать это, и (что неудивительно), кажется, нет никаких программ для DOS, чтобы сделать это. Помимо, возможно, FreeDOS или ReactOS, вряд ли кто-нибудь когда-нибудь захочет написать редактор реестра Windows для DOS.

Тем не менее, есть способ , вы можете получить доступ и даже редактировать реестр Windows , из DOS, но это не очень. Вам придется использовать файл-редактор (edit.com не собирается его обрезать) для прямого доступа к файлам кустов реестра. Например, чтобы получить доступ к HKLM\Software , вы должны открыть C:\Windows\Config\Software , или для доступа к кусту пользователя, вы должны открыть C:\Users\<username>\NTUSER.dat . И все это при условии, что системный диск Windows является даже FAT32, поскольку DOS не может получить доступ к NTFS без специального драйвера, большинство из которых разрешают доступ только для чтения.

Как я уже сказал, этот метод не очень приятный, потому что вам нужно быть знакомым с необработанным форматом файла реестра Windows, быть осторожным с записями, которые видны в файле, но помечены как удаленные, и быть невероятно осторожным при внесении любых изменений, потому что делать это очень рискованно. Таким образом, этот метод крайне не рекомендуется (даже я не беспокоюсь об этом, и мне нравится открывать все, чтобы заглянуть внутрь).

Гораздо более простой и безопасный способ - просто скопировать файлы кустов в другую систему Windows и смонтировать их (например, reg load hku\zzz x:\ntuser.dat), сделать все, что вам нужно, затем размонтировать их (например, reg unload hku\zzz) и скопируйте их обратно.

0

DOS был более или менее удален Microsoft в 2000 году, за исключением специального встроенного использования.

Кроме того, версии Windows на базе NT не основаны на DOS, как 9x/ME, и мало, если какие-либо утилиты MSDOS будут работать с чем-либо на основе NT из-за различий в операционной системе.

Microsoft представила Windows PE для поддержки вариантов внешнего спасения и установки; для чего раньше использовался DOS с Windows 9x/ME. До этого, с XP, Microsoft представила консоль восстановления, которая должна была выполнять ту же роль восстановления, для которой DOS часто использовалась в прошлом.

Использование чистого, действительного DOS для восстановления или восстановления установки Windows не было уместным или действительно невозможным уже около десяти лет, если вы все еще не используете Windows 95, 98 или ME.

Поэтому я абсолютно уверен, что Microsoft не разработала никаких инструментов для доступа или восстановления установок на базе NT из любой чистой DOS. Сторонние утилиты могут существовать, вероятно, они очень старые и не поддерживаются, если они существуют, и могут быть ненадежными из-за того, что внутренние компоненты реестра Windows официально не имеют документов.

0

Предупреждение. Следующая статья посвящена редактированию системного реестра. Неправильное использование редактора реестра может привести к серьезным проблемам, требующим переустановки операционной системы. Используйте редактор реестра и следующие инструкции на свой страх и риск.

Использование REGEDIT в DOS

Тот же REGEDIT, который мы используем в Windows, также работает как программа DOS. REGEDIT.EXE поддерживает аргументы командной строки, которые позволяют нам полностью перестроить реестр, оставляя после себя "грязь" и пустые места. Мы избавим от необходимости повторного ввода команд, создав четыре пакетных файла, которые вы можете носить с собой и запускать с дискеты. Для простоты предположим, что SYSTEM.DAT, USER.DAT и REGEDIT.EXE находятся в каталоге C:\WINDOWS. Шаг первый: удалите атрибуты ReadOnly и Hidden из SYSTEM.DAT и USER.DAT. Первым шагом в восстановлении реестра Windows из DOS является удаление атрибутов ReadOnly, Hidden и System из файлов SYSTEM.DAT и USER.DAT. Пакетный файл, который позволяет выключать и включать атрибуты по желанию (REGATT.BAT), выглядит следующим образом: @echo off, если не "% 1" == "-", если нет "% 1" == "+" Перейти INSTRUCT attrib% 1r% 1h% 1s c:\windows\system.dat attrib% 1r% 1h% 1s c:\windows\user.dat Перейти к ENDIT: INSTRUCT echo. echo Необходимо указать параметр - или +, например, «% 0 +» или «% 0 -»: ENDIT echo.

Чтобы его использовать, введите команду REGATT - или REGATT +, чтобы удалить или добавить атрибуты файла соответственно.

Вот как работает REGATT.BAT:

@echo off: Prevents the lines that follow from being displayed on the screen while the commands are being executed. The "@" prevents "echo off" from displaying.
if not "%1"=="-" if not "%1"=="+" goto INSTRUCT: This makes the batch file look for one parameter and limits the parameter choices to either "-" or "+." If neither is found, the script jumps to the INSTRUCT portion of the batch file. Note the use of the double "equals" signs (==).
attrib %1r %1h %1s c:\windows\system.dat: Runs the "attrib" command on SYSTEM.DAT with either "-r -h -s" or "+r +h +s," depending on the parameter.
attrib %1r %1h %1s c:\windows\user.dat: Runs the "attrib" command on USER.DAT the same as it does for SYSTEM.DAT.
goto ENDIT: Jumps over the INSTRUCT statement since all went well.
:INSTRUCT: Label that identifies this portion of the batch file.
echo.–: Prints a blank line on the screen. Note that there is no space between "echo" and "."
echo You must specify a - or + parameter, as in "%0 +" or "%0 -": Instructions for using the batch file. The %0 is a variable that is automatically replaced by DOS with the name of the batch file you typed on the command line. If you typed regatt in lower case, the line will read "You must specify a - or + parameter, as in regatt + or regatt -." If you change the name of the batch file to "wom.bat" and type WOM in upper case, it will read "You must specify a - or + parameter, as in WOM + or WOM -" without further editing. Neat, huh?
:ENDIT: Label that identifies this portion of the batch file.
echo.: Prints a blank line on the screen before returning to the prompt.

Шаг второй: Создайте резервную копию SYSTEM.DAT и USER.DAT. Процесс восстановления эффективно уничтожает текущий реестр. Если перестроить не удастся (я видел, что это происходит, когда файлы DAT сильно повреждены), реестра не будет. Восстановление поврежденного реестра лучше, чем отсутствие реестра вообще. Чтобы сделать резервную копию, мы просто копируем "unattribed" файлы SYSTEM.DAT и USER.DAT с REGBACK.BAT: @echo off, если «% 1» == »« Перейти к копии INSTRUCT c:\windows\system.dat c:\ Windows \ System.% 1 копия c:\windows\ user.dat c:\windows\ user.% 1 Перейти к ENDIT: INSTRUCT echo. echo Вы должны ввести расширение файла от 1 до 3 символов, как в «% 0 sav»: ENDIT echo.

Большинство строк в REGBACK.BAT аналогичны тем, что есть в REGATT.BAT. Три уникальные линии:

if "%1"=="" goto INSTRUCT: This jumps to the INSTRUCT section if no parameter is given after the "regback" command. Without a parameter, the value of %1 is null, so the statement translates to if ""=="" goto INSTRUCT and, since double-quotes indeed equal double-quotes, the script jumps to give the user instructions.
copy c:\windows\system.dat c:\windows\system.%1: Copies SYSTEM.DAT to SYSTEM.parameter. Be sure to limit your parameter to three allowable DOS characters.
copy c:\windows\user.dat c:\windows\user.%1: Copies USER.DAT to USER.parameter as above.

Шаг третий: Восстановление реестра. НЕ ПЫТАЙТЕСЬ ЗАПУСТИТЬ ЭТИ КОМАНДЫ, ЕСЛИ ВЫ НЕ СОЗДАЛИ РЕЗЕРВНЫЕ КОПИИ SYSTEM.DAT И USER.DAT! Помните, что вы уничтожите существующую копию реестра на этапе восстановления. Если восстановление не удастся, вы тоже. Убедитесь, что у вас есть собственная резервная копия. REGREBLD.BAT выглядит так: @echo off echo. echo Экспорт содержимого реестра. Пожалуйста, подождите... regedit /l:c:\windows\system.dat /r: c:\windows\ user.dat /ec:\windows\newreg.reg echo Восстановление реестра Windows. Не прерывайте! regedit /l:c:\windows\system.dat /r: c:\windows\ user.dat /cc:\windows\newreg.reg echo. del c:\windows\ newreg.reg echo.

REGREBLD.BAT не имеет параметров. Вот что делают решающие строки:

echo Exporting registry contents. Please wait...: The REGEDIT "export" command displays no information while it's executing. This is a courtesy line to let you know that something is happening.
regedit /l:c:\windows\system.dat /r:c:\windows\user.dat /e c:\windows\newreg.reg: Exports the contents of the current registry to a file we'll call "newreg.reg." The "/l:" and "/r:" switches point to the exact paths of SYSTEM.DAT and USER.DAT, respectively. The "/e" switch is for "export" and "c:\windows\newreg.reg" is the name of the target file that is created during the process.
echo Rebuilding the Windows registry. Do not interrupt!: Another courtesy statement. Unlike the "export" command, the REGEDIT "create" command displays a progress counter. However, it doesn't state what it's creating, only that it’s importing.
regedit /l:c:\windows\system.dat /r:c:\windows\user.dat /c c:\windows\newreg.reg: Creates a new registry from the contents of "c:\windows\newreg.reg." The key here is the "/c" switch, for "create." As soon as it is encountered, the current SYSTEM.DAT and USER.DAT are destroyed as new files are created from the data in newreg.reg. If this process is interrupted, the new registry will be incomplete and, therefore, useless.
echo.: The progress counter that is displayed by REGEDIT does not have a carriage return. This statement forces one at the completion of the "create" process.
del c:\windows\newreg.reg: Deletes the now unnecessary newreg.reg data file. You can remove this line if you want to look at the contents of newreg.reg before you delete it manually.

Полная процедура экспорта / создания может занять довольно много времени, в зависимости от размера и состояния текущего реестра. Я видел, что восстановление системного реестра на настольных ПК занимает от пяти минут до более часа. Я не рекомендую использовать его на ноутбуках. Если восстановление будет успешным (и в большинстве случаев), вам не понадобится следующий шаг.

Шаг четвертый: Восстановление неудачной перестройки. Четвертый шаг включает в себя возврат реестра к его предыдущему состоянию, если неудачная перестройка оставляет вас без рабочих файлов SYSTEM.DAT и USER.DAT. Мы назовем этот пакетный файл REGRET.BAT. Помните расширение, которое вы использовали при создании резервных копий? Вам понадобится здесь: @echo off, если "% 1" == "" перейти к INSTRUCT, если не существует c:\windows\system.% 1 перейти к NOFILE, если не существует c:\windows\user.% 1 перейти к атрибуту NOFILE -r -h -sc:\windows\system.dat attrib -r -h -sc:\windows\user.dat del c:\windows\system.dat del c:\windows\user.dat copy c:\windows\system.% 1 c:\windows\system.dat copy c:\windows\user.% 1 c:\windows\user.dat Перейти к ENDIT: NOFILE echo. echo Не удается найти один или несколько файлов резервных копий "% 1"! echo Пожалуйста, подтвердите расширение файла и попробуйте снова. Перейти к ENDIT: ИНСТРУКЦИЯ эхо. echo Необходимо указать правильное расширение файла резервной копии, как в «% 0 ext»: ENDIT echo.

REGRET.BAT запускается путем ввода «regret ext» в командной строке, где «ext» - это расширение, которое вы использовали при создании резервных копий. Если ext файлы не найдены, REGRET сообщит вам. Все команды REGRET аналогичны командам, которые мы использовали в предыдущих пакетных файлах. Обратите внимание, что после удаления сбойных файлов SYSTEM.DAT и USER.DAT мы копируем резервные копии в DAT, а не переименовываем их. Я никогда не чувствую себя комфортно, удаляя критически важные файлы резервных копий, пока не буду абсолютно уверен, что они больше не понадобятся. Удалите их вручную, когда вам удобно.

Используйте то, что вы узнали. Теперь, когда у вас есть пакетные файлы, попробуйте их в больной системе. Загрузите компьютер с истинной DOS "Только для командной строки безопасного режима" и запустите файлы с дискеты. Если вы делаете загрузочную дискету, убедитесь, что у вас есть AUTOEXEC.BAT, который содержит инструкцию пути, указывающую на C:\WINDOWS; C:\WINDOWS\COMMAND. Успешная перестройка реестра решит многие ваши "загадочные" проблемы с Windows, включая многие ошибки защиты Windows.

Источник: TechRepublic

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .