Эта статья применима ко всем ОС Windows, начиная с Vista
Начиная с Windows Vista, процесс импорта твиков реестра во время установки системы отличается от Windows XP. Эта статья частично повторяет материал о применении твиков реестра во время установки Windows XP, но это сделано исключительно с целью предоставить вам наиболее полную информацию о применнии твиков реестра во время установки Windows Vista и более новых ОС. Далее я подразумеваю, что вы уже владеете базовыми принципами работы с реестром, изложенными в статье Основы работы с реестром Windows.
На этой странице
Зачем импортировать параметры реестра во время установки системы?
Смысл импортирования параметров реестра заключается в том, что после установки системы вам не понадобится редактировать реестр вручную или при помощи “твикеров”. К моменту первого входа в систему все нужные вам параметры будут автоматически импортированы в реестр. Наверное, уже классическим твиком стало ускорение меню Пуск, которое по умолчанию открывает свои элементы слишком медленно. Как известно, для того чтобы его ускорить, нужно открыть редактор реестра, найти раздел HKEY_CURRENT_USER\Control Panel\Desktop и изменить значение параметра MenuShowDelay с 400 на 2 (или любое подходящее вам значение). Собственно говоря, можно создать файл, выполняющий данное изменение. Если в Блокнот скопировать следующий текст:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\Desktop]
"MenuShowDelay"="2"
и сохранить файл с расширением REG, то запуск такого файла и произведет нужное вам изменение. Именно таким образом и производится импортирование параметров реестра при установке системы. С той лишь разницей, что в одном файле перечисляется сразу несколько разделов и параметров.
Разделы реестра
Прежде чем перейти к тонкостям импорта параметров реестра во время установки Windows, нужно составить представление о том, в какие разделы будет производится импорт. Я не буду утомлять вас подробностями, а приведу лишь краткое описание разделов. Для общего образования я рекомендую ознакомиться со статьей базы знаний Microsoft Описание реестра Microsoft Windows.
HKEY_LOCAL_MACHINE (HKLM)
Название само по себе информативно - параметры локальной машины. Эти параметры называются системными. Изменения, которые вы вносите в этот раздел, применяются ко всем учетным записям. Tаким образом, отключив какую-нибудь службу, вы делаете ее недоступной для всех пользователей.
HKEY_CURRENT_USER (HKCU)
Опять же, название говорит само за себя - параметры текущего пользователя. Эти параметры так и называются - пользовательские. Изменения, которые вы вносите в этот раздел, применяются только к учетной записи, из-под которой делаются изменения.
HKEY_CLASSES_ROOT (HKCR)
Я не буду дублировать весьма подробное описание этом разделе реестра, данное в статье Описание реестра Microsoft Windows. Ознакомьтесь с ним самостоятельно. Я его интерпретирую следующим образом. Если вы хотите, чтобы изменения затронули всех пользователей, то либо импортируйте параметры HKCR вместе с HKCU, либо импортируйте параметры в раздел HKEY_LOCAL_MACHINE\Software\Classes.
HKEY_USERS (HKU)
Назначение этого раздела нередко интерпретируется неправильно. Видимо то, что он относится ко всем пользователям, когда-либо входившим в систему, и является причиной путаницы. Разберем его составляющие чуть подробнее.
HKEY_USERS\.DEFAULT
Я обратил внимание, что некоторые участники конференций MSFN и OSZone пытаются использовать этот раздел для импортирования параметров HKCU, рассчитывая применить их ко всем пользователям. Не исключаю, что в некоторых случаях это сработает. Однако ниже я расскажу о том, как это сделать правильнее и надежнее. Более того, HKEY_USERS\.DEFAULT скорее относится к настройкам, регулирующим процессы до входа пользователя в систему (например, раскладка клавиатуры по умолчанию).
HKEY_USERS\S-[длинный-набор-цифр]
Таких подразделов может быть несколько. Длинный набор цифр - это SID (идентификатор безопасности). У каждой учетной записи он свой, поэтому количество таких подразделов зависит от количества пользователей, когда-либо входивших в систему. Если вы попробуете отследить установку какого-нибудь приложения с помощью программ, мониторящих изменения в реестре, то, вероятно, увидите, что как раз в один из этих разделов вносятся изменения. Это и есть ваш профиль. С практической точки зрения этот раздел неинтересен, т. к. SID уникален для каждой системы, и в новой системе он будет уже другим. Фактически, такие изменения равносильны изменениям в HKCU.
Итак, определившись с назначением разделов реестра, можно смело сделать вывод о том, что с практической точки зрения нас интересует импорт в разделы HKLM и HKCU, т. е. применение системных и пользовательских параметров.
Импорт параметров HKLM и HKCU: вместе или раздельно?
Ответ на вопрос, вынесенный в подзаголовок, зависит от того, сколько учетных записей вы создаете и как вы хотите их настроить. Если у вас одна учетная запись или вам безразлично, какими будут пользовательские настройки других учетных записей, можно импортировать параметры HKLM и HKCU вместе.
Если же вы используете несколько учетных записей и хотите, чтобы все они изначально имели одинаковые пользовательские настройки, импорт параметров нужно производить раздельно. В этом случае вам понадобятся два REG-файла: в одном должны быть собраны параметры HKLM, а в другом - HKCU.
Применение пользовательских настроек ко всем учетным записям
Для того чтобы задать одинаковые пользовательские настройки всем учетным записям, необходимо вносить изменения в профиль стандартного пользователя (Default User) до первого входа в систему любого пользователя. Дело в том, что когда пользователь впервые входит в систему, его настройки берутся из профиля Default User. Таким образом, если у вас настроен профиль Default User, все остальные учетные записи получают точно такие же настройки. При этом неважно, когда была создана учетная запись - имеет значение лишь то, когда был выполнен ее первый вход в систему - до или после настройки профиля Default User.
Итак, если вы хотите, чтобы все пользователи имели одинаковые параметры, необходимо настраивать профиль Default User. Во время установки Windows можно импортировать как системные (HKLM), так и пользовательские (HKCU) параметры. Однако применить пользовательские параметры удастся лишь к той учетной записи, из-под которой производится импорт. В отличие от Windows XP, импорт в HKCU во время установки Windows не вносит изменений в профиль Default User. Поэтому, если вы хотите задать пользовательские настройки для всех учетных записей, импорт придется производить двумя различными способами. Пользовательские параметры будут импортированы до установки Windows, а системные - во время нее.
Импорт параметров реестра во время установки Windows
Этот способ подходит для импорта параметров HKLM и HKCU.
В процессе установки Windows можно импортировать REG-файлы на двух различных этапах - в режиме аудита или сразу по окончании установки ОС. Импорт в режиме аудита ничем не отличается от других команд, выполняемых на этой стадии. Весь процесс подробно описан в статье Установка приложений. Дублировать его здесь нет смысла, поэтому я расскажу об импорте по окончании установки.
SetupComplete.cmd
Импорт системных параметров очень просто осуществить с помощью OEM-папок и файла SetupComplete.cmd, подробный рассказ о котором вынесен в отдельную статью Справочника. Выбор того, где размещать сам REG-файл, я оставляю за вами. Проще всего разместить его в той же папке Scripts - он также будет скопирован на жесткий диск. Можно запускать его прямо с установочного DVD, но тогда вам понадобится определять букву диска, о чем также подробно рассказывается в другой статье Справочника.
Если вы разместили REG-файл HKLM.reg в папке Scripts, в SetupComplete.cmd нужно внести такую команду:
regedit /s %windir%\Setup\Scripts\HKLM.reg
Итак, с импортом системных параметров все понятно.
Пользовательские параметры для всех учетных записей можно настроить путем их импорта в файл ntuser.dat профиля Default. Процедура описана ниже на примере импорта параметров в образ. Разница лишь в том, что пункты 2-5 выполняются из setupcomplete.cmd.
Импорт параметров реестра в образ до установки Windows
Согласно рекомендациям Microsoft, способ настройки пользовательских параметров выглядит следующим образом. Сначала устанавливается система, выполняется вход с правами встроенной учетной записи Администратор и вносятся изменения (например, производится импорт REG-файлов). Затем выполняется захват образа, после чего он развертывается с помощью файла ответов, в котором предусмотрено копирование профиля администратора в профиль Default User. Этот способ, рекомендуемый ОЕМ-сборщикам, не только весьма трудоемкий, но и автоматизация его является весьма нетривиальной задачей. Я предлагаю вам обходной путь, который ведет к той же цели намного быстрее. Сводится он к импорту параметров реестра в WIM-образ - файл install.wim.
Для импорта REG-файла в WIM-образ необходимо выполнить следующую последовательность действий.
- Подключить образ.
- Загрузить профиль Default User в реестр.
- Импортировать в него параметры.
- Выгрузить профиль.
- Отключить образ, сохранив изменения.
Это очень просто - требуется выполнить всего пять команд!
Замечания об импорте параметров реестра в WIM-образ
Прежде чем подробно описать процедуру импорта, я бы хотел осветить несколько моментов, связанных с этим способом.
Преимущества. Основным преимуществом является простота по сравнению с альтернативными способами настройки пользовательских параметров.
Недостатки. Главных недостатков два. Во-первых, при использовании этого способа существует вероятность повреждения системного образа, что может привести к проблемам с установкой или работой ОС. Во-вторых, каждый раз, когда вы захотите добавить или удалить какой-либо параметр реестра, вам придется выполнять всю процедуру полностью. Это занимает больше времени, чем простая замена REG-файла в случае с системными параметрами. В любом случае, я рекомендую вам сделать резервную копию файла install.wim перед внесением в него любых изменений.
Итак, к делу!
Подключение образа Windows
Для подключения WIM-образа с помощью утилиты ImageX достаточно одной команды:
imagex /mountrw C:\VistaWork\DVD\sources\install.wim 4 C:\VistaWork\Mount
В этой команде:
- /mountrw - указывает утилите ImageX подключить образ с возможность чтения и записи.
- C:\VistaWork\DVD\sources\install.wim - путь к WIM-файлу образа.
- 4 - индекс образа (подробнее об индексах образа см. здесь).
- C:\VistaWork\Mount - путь к папке, в которую будет подключен образ.
Подробнее об ImageX и подключении образа вы можете прочесть в статье Добавление файлов в дистрибутив Windows.
Загрузка профиля Default User в реестр
Поскольку подключенный образ представляет собой папку с файлами, файл NTUSER.DAT в профиле Default User становится доступен для любых операций. Его можно загрузить в реестр точно так же, как любой другой куст. Делается это одной командой:
reg load HKEY_USERS\Custom C:\VistaWork\Mount\Users\Default\NTUSER.DAT
В этой команде:
- reg load - загрузка куста реестра.
- HKEY_USERS\Custom - название раздела, в который производится загрузка. В данном случае в разделе HKEY_USERS создается подраздел Custom.
- C:\VistaWork\Mount\Users\Default\NTUSER.DAT - путь к загружаемому файлу. Файл профиля Default User расположен в папке \Users\Default\NTUSER.DAT относительно корня подключенного образа.
Импорт REG-файла в профиль Default User
Если у вас имеется REG-файл с твиками реестра, которые вы хотите импортировать, его можно использовать после небольшой модификации.
Изменения в имеющемся REG-файле сводятся к замене названия раздела, в который производится импорт. Рассмотрим для примера вездесущий твик, изменяющий скорость открытия элементов меню Пуск.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\Desktop]
"MenuShowDelay"="2"
В этом REG-файле импорт производится в раздел HKEY_CURRENT_USER, однако нашей целью является импорт в раздел HKEY_USERS\Custom. Поэтому необходимо в любом текстовом редакторе заменить все упоминания HKEY_CURRENT_USER и/или HKCU на HKEY_USERS\Custom, после чего сохранить файл с именем, скажем, tweaks_hku.reg.
Теперь, REG-файл можно импортировать - это также делается одной командой:
reg import C:\VistaWork\tweaks_hku.reg
В этой команде:
- reg import - импорт REG-файла.
- C:\VistaWork\tweaks_hku.reg - путь к импортируемому файлу.
Вы можете открыть редактор реестра, перейти в раздел HKEY_USERS\Custom и убедиться в том, что параметры были изменены.
Выгрузка профиля Default User из реестра
Выгружается профиль также одной командой:
reg unload HKEY_USERS\Custom
Синтаксис, надеюсь, не требует расшифровки.
Отключение образа с сохранением изменений
Остается лишь отключить образ, сохранив произведенные в нем изменения. Команда такая:
imagex /unmount /commit C:\VistaWork\Mount
В этой команде:
- /unmount - отключение образа.
- /commit - сохранение изменений в образе (если этот параметр не указан, образ будет отключен без сохранения изменений).
- C:\VistaWork\Mount - путь к папке, в которую подключен образ.
Если вы все сделали правильно, у вас в образе сохранен полностью настроенный профиль Default User. Все созданные учетные записи будут иметь заданные вами настройки.
Автоматизация импорта параметров в профиль Default User
Поскольку для импорта параметров в профиль Default User требуется всего пять команд, их можно объединить в один командный файл.
@echo off
:: Укажите путь к папке, в которой находится install.wim
SET wimpath=C:\VistaWork\DVD\sources
:: Укажите путь к папке, в которую будет подключен образ
SET mountfolder=C:\VistaWork\Mount
:: Укажите путь к файлу с твиками реестра
:: Если этот командный файл и REG-файла находятся в одной папке,
:: достаточно указать только имя REG-файла
SET tweak=tweaks_hku.reg
ECHO.
ECHO Подключение образа
start /wait imagex /mountrw %wimpath%\install.wim 4 %mountfolder%
ECHO.
ECHO Импорт твиков реестра
reg load HKEY_USERS\Custom %mountfolder%\Users\Default\NTUSER.DAT
reg import %tweak%
reg unload HKEY_USERS\Custom
ECHO.
ECHO Отключение образа
imagex /unmount /commit %mountfolder%
ECHO.
ECHO Операция завершена!
pause
exit
В файле требуется задать три параметра. Сохраните файл с расширением CMD в кодировке DOS-866 в любой папке. В этой же папке разместите модифицированный REG-файл и утилиту ImageX, либо укажите к ним путь в коде командного файла.
Практические советы
Как известно, твики реестра позволяют настроить множество системных и пользовательских параметров. Я уже забыл, когда последний раз пользовался твикером, т. к. система сразу устанавливается с учетом моих предпочтений. Вероятно, вы захотите сделать то же самое. Резонный вопрос: как узнать какой твик реестра отвечает за те или иные изменения в системе, произвoдимые через пользовательский интерфейс?
- На OSZone.net имеется очень большая подборка твиков, созданная силами участников форумов автоустановки. Для вашего удобства твики разделены на пользовательские (HKCU) и системные (HKLM). Многие твики реестра Windows XP работают в более новых Windows, но далеко не все, поэтому будьте внимательны при их копировании. Кроме того, не копируйте все твики разом, а постарайтесь вникнуть в смысл каждого из них. Сравните со своими настройками системы.
- Кстати, экспорт параметров вашей настроенной системы - отличный вариант. Так, например, изрядное количество настроек меню Пуск и вида папок находится в разделе
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
Если вы не уверены за что отвечает тот или иной параметр, введите его название в Google, и ответ не заставит себя ждать. - Если ваши поиски не увенчались успехом, то... вы плохо искали :) Можете попробовать произвести мониторинг системы самостоятельно. В этом вам помогут бесплатные программы Process Monitor (мониторинг в реальном времени) и Regshot (снимок до и после изменений).
- Ну и конечно, вы всегда можете задать вопрос на форуме в теме про твики реестра.