Добавление пользовательских настроек методом Active Setup.
Думаю многих участников OSzone заинтересует этот способ добавления неотработанных пользовательских настроек (твиков, таких как - Настойки игр, указателей мыши, звуковых схем и т.д.) на этапе автоматической установки, ранее описанном
Mr dUSHA. Я же предлагаю воспользоваться
Active Setup в своих целях и результатом этих целей станет - Добавление неотработанных твиков, добавление файлов настроек (к примеру настроек игр Майкрософт - файлов XML хранящихся в каталоге %LocalAppData%\Microsoft Games) и т.п. в пользовательский профиль при первом входе в систему и при дальнейших первых входах новосозданных пользователей.
Как уже было описано
Mr dUSHA:
Все установленные в системе
Active Setup можно найти в ветке системного реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{GUID}
И все они срабатывают только при первом логине пользователя настраивая некоторые компоненты Windows, сверяя версии
Active Setup компонентов веток системного реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components и пользовательского
HKEY_CURRENT_USER\Software\Microsoft\Active Setup\Installed Components, тем самым обновляя устаревшие системные параметры более новыми, отчего и происходит затирание внесенных изменений в реестр профиля
Default User (NTUSER.DAT). Далее система продолжает следить за этими ветками реестра и если при последующих загрузках она обнаружит запись на новый
Active Setup компонент или более новую версию уже установленного, она тут же его устаноит.
Привожу пример выполняемых мною действий на уже установленной системе и в автоустановке:
Создание Active Setup компонента.- Открываю редактор реестра (Regegit.exe).
- Перехожу в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components.
- В разделе Installed Components создаю новый подраздел (дочерний раздел) и в качестве имени использую новый GUID, предварительно сгенерировав его, к примеру он-лайн генератором GUID.
- В новосозданном разделе GUID задаю строковому параметру @ (По умолчанию) имя моего Active Setup компонента, к примеру Default User.
- Создаю строковой параметр под именем StubPath, в качестве значения задаю ему путь к моему ранее заготовленному (созданному) 7-Zip-sfx файлу, к примеру Default.exe, в котором находятся твики реестра, файлы настроек и т.п. предназначенные для нового пользователя и помещаю его в папку Windows. В моем конкретном случае это оказался строковой параметр, если бы строка пути содержала переменную среды (к примеру: %WinDir%\Folder\Default.exe) мне бы пришлось создавать расширяемый строковой параметр.
- Создаю строковой параметр Version, в качестве значения задаю ему номер версии моего Active Setup, к примеру 7601,17514,01 вводя символы через запятую.
- Экспрортирую мой новосозданный раздел GUID со всеми его параметрами и зачениями параметров в файл реестра с расширением reg на жесткий диск, для дальнейшего его использования при автоматической установке.
Пример твика реестра:
Код:
![Выделить весь код](images/misc/selectcode.png)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{C9AA2607-26AE-4B00-94BB-BBD5E70B101D}]
@="Default User"
"Version"="7601,17514,01"
"StubPath"="Default.exe"
Все, мой новенький Active Setup создан и готов к использованию. В соседних компонентах Active Setup, как можно заметить содержатся и другие, но менее важные параметры, которые можно применить к своему Active Setup.
Тестирую новый Active Setup компонент.
Перехожу к этапу тестирования, на хостовой системе или платформе виртуализации - без разницы, это уже дело вкуса. Т.к. на хостовой системе
Active Setup у меня уже создан, тестирую на ней.
- Убеждаюсь, что по указанному пути (%WinDir%\Default.exe) в значении параметра StubPath уже находится мой 7-Zip-sfx файл, если нет, помещаю его туда.
- В окне Панели управления в апплете Контроль учетных записей, создаю новую учетную запись любого типа.
- Выхожу из системы и захожу под учетной записью новосозданного пользователя.
Если при создании Active Setup не было допущено ошибок, значит компонент отработает и его можно добавлять в автоустановку. Т.к. многие твики вступят в силу только после перезагрузки компьютера, считаю логично было бы добавить команду на
перезагрузку компьютера, а если сборка создается для общего пользования, то еще и к перезагрузке добавить окошко предупреждающее пользователя почему производится перезагрузка системы, чтобы тот не бросился в панику
![Smile](images/smilies/new/smile.gif)
. В остальном думаю, что сложностей не должно возникнуль.
Автоустановка.- Добавляю код моего нового Active Setup компонента из эксортированного мною на жесткий диск reg-файла к остальным твикам HKLM, которые собираюсь импортировать в системный реестр в процессе автоустановки.
- 7-Zip-sfx файл Default.exe не помещая в папку $OEM$\$$ импортирую при помощи команды COPY из SetupComplete.cmd в процессе автоустановки в папку Windows.
С помощью синхронной команды файла ответа не пробовал добавлять Active Setup компонент.
Всем удачного использования данного метода!
Будет время, в следующем сообщении, опишу твик
Вид\Представление папок и библиотек в Проводнике - Список, Таблица, Плитка и т.д.