Технология Active Setup в Windows

В этой статье хочу поговорить об интересной, и почему-то редко применяемой системными администраторами технологии Windows под названием Active Setup. Ниже показаны пара скриншотов, которые, вы, вероятно, не раз видели при первом входе в систему Windows. В Windows 7/2008/Vista окошко процесса выглядит так:

windows 7. preparing wour desktop

В Windows XP /2003 тоже самое окно такое:

windows xp. setting up personalized settings for

Данное окно появляется лишь один раз при первом входе пользователя в систему, если зайти в систему второй раз под той же учетной записью, его вы уже не увидите. Если же на этот же компьютер попытается залогиниться новый пользователь, то для него процесс повторится заново.

Вышеописанная процедура это функционал технологии Active Setup, которая, как вы уже догадались, нужна для разового применения пользовательских настроек программ и различных компонентов Windows. С помощью Active Setup конфигурятся  параметры Internet Explorer, часть компонентов Microsoft Office и т.д.

Чем же эта функция может быть полезна системным администраторам? На мой взгляд, Active Setup  прекрасно подойдет для больших сетей и ситуации, когда необходимо применить некоторые параметры пользователей, отсутствующие в групповой политике. Или же в случаях, когда нужно выполнить какую-либо команду один раз под каждым новым пользователем, регистрирующимся на компьютере.

Чтобы добавить собственный элемент Active Setup, нужно создать новую ветку реестра вида  HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\[Код_продукта] — где [Код_продукта] — GUID  кода продукта в MSI пакете. Однако, это  может быть произвольная строка, главное чтобы она была уникальной для этой машины.

Внутри созданной ветки   могут быть следующие параметры:

  • @ (значение по умолчанию). Здесь можно указать имя компонента, которое будет отображаться в процессе выполнения команды на компьютере
  • Version – версия компонента, например 2,0,34.
  • StubPath – исполняемая командная строка. Здесь можно указать имя исполняемого файла или скрипта (vbs,powershell или bat)

Есть еще ряд необязательных параметров реестра, но в данном случае они нам не интересны (если любопытно можете подсмотреть у соседних элементов ActiveSetup).

После формирования данной ветки и ключей, нужно распространить изменения в реестре на целевую группу компьютеров (это можно сделать с помощью SCCM, групповых политик или просто встроить в образ разворачиваемой ОС).

Что же происходит на компьютере при входе нового пользователя? На первом этапе при входе пользователя система сверяет содержимое веток HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components и HKEY_CURRENT_USER\SOFTWARE\Microsoft\Active Setup\Installed Components. Для каждого ключа из HKLM в HKCU  ищется копия с таким же GUID. Если ее нет, то выполняется команда StubPath, по завершению которой в HKCU создается дубликат ключа.

Если обнаружена одинаковая ветка с ключами в HKLM и в HKCU, то дальше сравниваются версии по полю Version, и если  версия в HKLM  старше, чем версия в HKCU, то команда выполняется снова, после чего вновь обновляется версия в HKCU.

Если же совпадают и номера версий, это означает, что данный компонент для данного юзера уже запускался и повторно выполнять его не нужно.

На мой взгляд такая технология это явно удобнее, чем возня с  RunOnceEx.


Предыдущая статья Следующая статья

Комментариев: 1 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)