О разделах реестра и способах импортирования параметров
Читая сообщения в конференциях MSFN и OSZone, я пришел к выводу, что некоторые участники неверно интерпретируют назначение разделов реестра. Думаю, что не помешает небольшое разъяснение. Я не буду вдаваться в подробности, а лишь обрисую основы применительно к автоматической установке системы. Для общего образования я рекомендую ознакомиться со статьей MS KB Описание реестра Microsoft Windows. Теперь конкретнее о разделах.
HKEY_LOCAL_MACHINE (HKLM)
Название само по себе информативно: параметры локальной машины. Изменения, которые вы вносите в этот раздел, применяются ко всем учетным записям. Tаким образом, отключив какую-нибудь службу, вы делаете ее недоступной для всех пользователей. Во время автоматической установки Windows лучше всего импортировать параметры HKLM при первом входе в систему, после загрузки оболочки. "Ага!", скажете вы, "Значит можно и раньше?" Можно (об этом ниже), но надежнее их импортировать после загрузки оболочки.
Типичным способом импортирования параметров является пакетный файл, запускаемый из [GuiRunOnce]. Файл содержит такую команду
ECHO.
ECHO Applying Registry Tweaks...
REGEDIT /S %systemdrive%\install\hklm.reg
HKEY_CURRENT_USER (HKCU)
Опять же, название говорит само за себя: параметры текущего пользователя. В принципе, изменения, которые вы вносите в эту раздел, применяются только к учетной записи, из-под которой делаются изменения. Безусловно, параметры HKCU можно импортировать при первом входе в систему. Если вы работаете из-под встроенной учетной записи Администратор, так, наверное, и следует делать. Я, однако, предпочитаю работать из-под другой учетной записи с правами администратора, оставляя встроенного Администратора на всякий случай нетронутым. Если во время автоустановки первым вход в систему осуществит Администратор, то к его учетной записи все HKCU твики и применятся, а остальные учетные записи останутся ненастроенными.
К счастью, для тех, кто работает более чем с одной учетной записью, есть обходной путь. Во время автоматической установки вы можете импортировать параметры на этапе, когда ни один из пользователей еще не вошел в систему. Делается это из файла cmdlines.txt. Такой способ особенно полезен тем, что параметры HKCU фактически импортируются в настройки пользователя по умолчанию (Default User), чей раздел реестра подключается вместо HKCU во время установки Windows. Когда пользователь входит в систему первый раз, его настройки берутся из профиля Default User. Таким образом, все параметры, импортированные в HKCU из cmdlines.txt, применяются ко всем учетным записям создаваемым впоследствии. Теперь понятно, почему у меня два раздельных файла твиков реестра для HKLM и HKCU? Сколько бы я пользователей не создавал впоследствии, у всех у них интерфейс уже будет максимально настроен (в соответствии с моими предпочтениями :)
Для импортирования параметров HKCU из cmdlines.txt достаточно разместить файл hkcu.reg в корне директории $ОEМ$ и добавить в cmdlines.txt следующие строки:
[Commands]
"REGEDIT /S hkcu.reg"
HKEY_CLASSES_ROOT (HKCR)
Я не буду дублировать весьма подробное описание этого раздела реестра, данное в статье МS KB. Ознакомьтесь с ним самостоятельно. Я его интерпретирую следующим образом. Если вы хотите, чтобы изменения затронули всех пользователей (включая будущих), то либо импортируйте параметры HKCR вместе с HKCU из cmdlines.txt, либо импортируйте параметры в раздел HKEY_LOCAL_MACHINE\Software\Classes при первом входе в систему. HKEY_USERS (HKU)
Назначение этого раздела нередко интерпретируется неправильно. Видимо то, что он относится ко всем пользователям, когда-либо входившим в систему, и является причиной путаницы. Разберем его составляющие чуть подробнее. HKEY_USERS\.DEFAULT
Я обратил внимание, что участники конференций MSFN и OSZone пытаются использовать этот раздел для импортирования HKCU твиков, рассчитывая применить их ко всем пользователям. Не исключаю, что в некоторых случаях это сработает. Однако, вы уже знаете как это сделать правильнее и надежнее. Более того, HKEY_USERS\.DEFAULT скорее относится к настройкам, регулирующим процессы до входа пользователя в систему (например, раскладка клавиатуры по умолчанию). HKEY_USERS\S-[длинный-набор-цифр]
Таких разделов может быть несколько. Это зависит от количества пользователей, когда-либо входивших в систему. Если вы попробуете отследить установку какого-нибудь приложения с помощью программ, мониторящих изменения в реестре, то вероятно увидите, что как раз в один из этих разделов вносятся изменения. Это и есть ваш профиль. С практической точки зрения этот раздел неинтересен, т.к. длинный набор цифр уникален для каждой системы, и в новой системе он будет уже другим. Фактически, такие изменения равносильны изменениям в HKCU.
Надеюсь этот небольшой экскурс в реестр будет вам полезен.
Практические советы
Как известно, твики реестра позволяют настроить практически любые параметры системы. Я уже забыл, когда последний раз пользовался твикером, т.к. система уже сразу устанавливается с учетом моих предпочтений. Вероятно, вы захотите сделать тоже самое. Резонный вопрос: как узнать какой твик реестра отвечает за те или иные изменения в системе, произвoдимые через пользовательский интерфейс? В сети масса сайтов, содержащих информацию о параметрах реестра. Начать можете с www.oszone.net/14. Там очень большая подборка твиков, созданная силами участников форумов автоустановки. Не копируйте все твики разом, а постарайтесь вникнуть в смысл каждого из них. Сравните со своими настройками системы. Кстати, экспортирование параметров вашей настроенной системы - отличный вариант. Так, например, изрядное количество настроек меню Пуск и вида папок находится в разделе HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced Если вы не уверены за что отвечает тот или иной параметр, введите его название в Google, и ответ не заставит себя ждать. Если ваши поиски не увенчались успехом, то... вы плохо искали :) Можете попробовать произвести мониторинг системы самостоятельно. В этом вам помогут бесплатные программы Regmon или Process Monitor (мониторинг в реальном времени) и Regshot (снимок до и после изменений).
Ну и конечно, вы всегда можете задать вопрос на форуме в теме про твики реестра.