Сервісний центр VPSGroup ремонт комп'ютерної техніки, заправка картриджів, ремонт оргтехніки, Київ, Виставковий центр, Васильківська, 55

Active Setup.

Напевно ви помічали, що найперший вхід користувача в систему займає трохи більше часу, ніж всі наступні. Це пов'язано з тим, що при вході до користувача використовуватимуться різних програмних продуктів, таких як Microsoft Office, Internet Explorer і т.п. Механізм, який реалізує ці настройки, називається Active Setup.

Active Setup призначається для одноразового застосування конфігурації програмного забезпечення, тому для кожного користувача він відпрацьовує тільки один раз. При наступному вході в систему того ж користувача ви його вже не побачите, зате якщо в систему зайде інший користувач, для нього весь процес повториться.

Цю особливість Active Setup можна використовувати в тому випадку, коли необхідно одноразово виконати будь-яке дію, наприклад провести настроювання користувальницького оточення для нового користувача або встановити \ оновити ПЗ.

Налаштування Active Setup знаходяться в реєстрі, в розділі HKLM \ Software \ Microsoft \ Active Setup \ Installed Components.Для кожного компонента є окремий розділ з ім'ям, що складається з унікального ідентифікаційного номера (GUID). У розділі є кілька параметрів, з яких нас цікавлять такі:

(за замовчуванням) - назва компонента, яке відображатиметься під час здійснення;
StubPath - команда, яка повинна бути виконана.Тут можна вказати команду, скрипт (cmd, vbs або powershell) або виконуваний файл;
Version - версія компонента в текстовому форматі, елементи розділені комами (напр. 1,0,00).



Принцип роботи Active Setup простий. При вході користувача система порівнює вміст розділів HKLM \ Software \ Microsoft \ Active Setup \ Installed Components і HKCU \ Software \ Microsoft \ Active Setup \ Installed Components.Для кожного розділу в HKLM повинна бути копія з тим же GUID в HKCU. Далі є три варіанти розвитку подій:

1. Якщо копії немає, то виконується команда, вказана в StubPath, після чого в HKCU створюється розділ з тим же GUID і іншими параметрами.
2. Якщо копія є, то порівнюється значення параметра Version.Якщо версія в HKCU молодше, ніж в HKLM, то завдання відпрацьовує повторно, після чого номер версії в HKCU оновлюється.
3. Якщо ж розділ з однаковим GUID є і в HKLM і в HKCU і номер версії у них збігається, то значить компонент вже відпрацював для даного користувача і запускати його не потрібно.

Створення нового компонента

Перше, що потрібно для створення власного компонента - це GUID. Згенерувати його можна за допомогою PowerShell, командою:

[System.Guid] :: NewGuid ()



Потім в розділі HKLM \ Software \ Microsoft \ Active Setup \ Installed Components створюємо підрозділ з новим GUID і додаємо в нього необхідні параметри Version і StubPath, а також при бажанні вказуємо ім'я компонента.Для прикладу я додав в StubPath простенький cmd-скрипт, який виводить рядок тексту і чекає натиснення клавіші.



І при наступному вході в систему наш скрипт відпрацьовує ось таким чином.



Використовуючи GPO

Для централізованого управління Active Setup можна задіяти групові політики.Для цього є спеціальний інструмент «Уподобання групової політики» (Group Policies Preferences), у якому серед іншого дозволяє редагувати реєстр. Порядок дій такий:

Спочатку відкриваємо редактор і створюємо новий GPO. Відкриваємо його на редагування і переходимо в розділ Computer Configuration \ Preferences \ Windows Settings \ Registry.Натискаємо правою клавішею і в контекстному меню переходимо на New -> Registry Item.



Задаємо всі необхідні параметри ключа (шлях, ім'я, тип), в якості дії вказуємо створення (Create).



Таким же чином створюємо всі необхідні ключі. Потім отриману GPO прив'язуємо до підрозділу (OU).Тепер після застосування політики завдання відпрацює на всіх комп'ютерах, які перебувають в цьому OU. А якщо буде потрібно перезапустити завдання, то досить відредагувати версію компонента (наприклад з 1,0,0 на 1,0,1) і завдання відпрацює повторно.



І на закінчення одна особливість, яку потрібно враховувати при використанні ActiveSetup.Справа в тому, що ActiveSetup запускається перед завантаженням робочого столу. Команди стартують синхронно, при цьому на час їх виконання вхід в систему блокується. І якщо створене вами завдання по якійсь причині не зможе відпрацювати, то увійти в систему не вдасться. Тому перед застосуванням скрипт \ додаток варто ретельно оттестировать..