Уніфікація logon скриптів в рамках великої компанії

У 2006 році компанія, де я працював, переходила з розрізнених доменів Windows NT 4, Windows 2000 на єдиний і централізований AD домену на основі Windows 2003. Наша компанія дуже велика, мульти-національна, співробітників сильно більше за 30 000 чоловік. Перш ніж почну говорити про створені скрипти, опишу трохи архітектуру AD і нашу IT інфраструктуру.

Архітектура AD
При впровадженні AD централізовані підрозділу (вони знаходяться в Болгарії), які за це відповідали, прийняли наступні рішення:
  1. Єдиний домен;
  2. Структура OU по країнах (на прикладі Росії): Russia\Workstations, Russia\Users, Russia\Groups;
  3. В кожній країні, в кінцевому підсумку, залишилося по 2 DC (Domain Controller);
  4. Прав рівня Domain admin в країнах немає, вони — тільки в Болгарії (BG).


Опис ІС, розташованої в Росії
  1. 15 великих ЛОМ по країні з числом ПК від 100 до 500, які мають своїм файловим сервером;
  2. Більше 100 філій з числом ПК від 3 до 30;
  3. Загальне число робочих станцій понад 5000;
  4. Всі сайти об'єднані в єдину мережу з різними швидкостями;
  5. Робочі станції — Windows XP Prof (на той момент), або Windows 7 (зараз).


Права у AD в локальних IT відділів OU Russia
  1. Включати свої ПК в домен;
  2. Міняти членів груп, створених у OU Russia\Groups;
  3. Скидати паролі користувачів в OU Russia\Users;
  4. Все інше — за стандартними запитами до централізованих сервісів з обслуговування AD (якщо схвалять).


Завдання

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

Чому це може бути цікавим для вас

Якщо ви хочете стандартизувати і уніфікувати startup / logon скрипти, а також мати потужний інструмент, що дозволяє збирати інформацію про ваших комп'ютерах, автоматизації адміністративних завдань тощо, і при цьому все це абсолютно безкоштовно, то ви можете скористатися моїм рішенням, яке працює в CCHBC з 2006 по 2014 року і добре себе зарекомендувало. Безумовно, освоєння даного рішення зажадає від вас часу і зусиль. За допомогою цієї статті я б хотів зрозуміти, наскільки це рішення буде цікаво широкому колу IT фахівців. Якщо ви виявите інтерес, я буду продовжувати документувати скрипти і розвивати їх.

Можливості

  1. Не дивлячись на те, що скрипти реалізовані на VBScript, для пересічних адміністраторів, які хочуть скористатися їх плодами, розроблений макромова, що складається з 20 команд, які покривають 90% типових потреб управління робочими станціями через logon-скрипти;
  2. Кожна IP підмережа може мати свій сценарій для виконання, крім цього є глобальна сценарій, який виконують всі робочі станції;
  3. Скрипти бувають startup і logon. Природно, startup скрипти виконуються від імені системної облікового запису робочої станції, а logon — від імені користувача;
  4. Згадувані вище 20 макрокоманд можуть відпрацьовувати в залежності від наступних умов:
    • Членства в групі AD;
    • Конкретне ім'я хоста;

    • Конкретне ім'я користувача;
    • Приналежність до OU;
    • Логічне умова на основі наявності файлу або папки на диску, значення ключа реєстру, версії виконуваного файлу, або будь-якої умови мовою VBS, яке може бути обчислено за допомогою функції DOS Eval.
  5. UAS стартує свій завантажувач через GPO з DC, а далі завантажувач визначає найближчий файловий сервер і основний скрипт зчитується і запускається вже звідти;
  6. Дії UAS:
    • MAPDRIVE — підключення мережного диска;

    • DECSYMB — встановлює символ-роздільник цілої і дробової частини чисел в регіональних настройках;
    • USERLOGON — запуск зовнішнього скрипта / програми в контексті користувача;
    • PCLOGON — запуск зовнішнього скрипта / програми в контексті системи;
    • ADDPRINTER — підключає мережний принтер;
    • DELPRINTER — видаляє підключення принтера;
    • SETDEFPRN — встановлює принтер за замовчуванням;
    • UCRTSHORTCUT — створення ярлика на робочому столі користувача;
    • PCRTSHORTCUT — створення ярлика на загальному робочому столі;
    • COPYFILE — копіює файл, попередньо запакований утилітою compress; після копіювання автоматично запускає розпакування файлу через expand;
    • MAKEDIR — створення папки;
    • DELTMPFILES — видаляє файли з папки TEMP;
    • SETFLAG — встановлює прапор (тригер), по якому можуть стартувати інші команди (див. 4.е.);
    • CRTSHARE — створює загальний ресурс на клієнтському комп'ютері;
    • DELSHARE — видаляє загальний ресурс;
    • SETVAR — оголошення та обчислення змінної через оператора Execute VBS. Надзвичайно потужна команда, яка дозволяє вам виконати один або декілька операторів VBS спираючись на величезну кількість змінних, яке вже оголошено і обчислено в скрипті. Наприклад, ви за допомогою цієї команди можна записати що-то в реєстр, хоча спеціальної команди для цього і немає. Змінні отримані через цю команду можна підставляти в інші команди і інтерпретатор буде підставляти замість них їх значення;
    • SQLADD — додавання запису в таблицю SQL зі структурою Serial, Type, Value;
    • SQLUPDATE — оновлення створеної в таблиці SQL запису;
    • SMTPMSG — відправка повідомлення по протоколу SMTP (без авторизації).
  7. Скрипт збирає логи і розміщує їх на файловому сервері:
    • GLOBAL — лог основних контрольованих характеристик ПК;

    • EVENTS — лог змін основних характеристик, які ідентифікуються шляхом порівняння поточної і попередньої версії global лода;
    • PCSESLOG — лог фактів виконання робочою станцією startup скрипта;
    • USSESLOG — лог фактів виконання logon скрипта користувачами;
    • USERLOG — лог, що збирає статистику по частоті входів користувачів на ПК, щоб можна було з певною часткою достовірності обчислити основного користувача комп'ютера.
  8. На основі GLOBAL логів за допомогою допоміжних скриптів щоденно формується Excel файл, що містить саму свіжу інформацію з усіх комп'ютерів компанії. Цей файл — найцінніше підмога в роботі будь служби підтримки, а також вивірки інвентаризації;
  9. Логи EVENTS, PCSESLOG і USSESLOG допоміжними скриптами на щоденній основі консолідуються на певному файловому сервері і закачуються в SQL БД. Дана БД, яка накопичила інформацію за декілька років, дуже виручає при пошуку відповідей на питання типу: «хто у нас був користувачем RU651256 у 2011 році» або «де останній раз логін ноутбук з серійним номером S4FTYY6» тощо;
  10. Скрипт веде докладний логування своєї роботи, створюючи в папці TEMP відповідні текстові файли;
  11. Щоб не залежати від фактичної частоти перезавантажень комп'ютера (деякі користувачі не перезавантажуються тижнями), передбачено механізм автоматичного запуску скрипта за розкладом з випадковою затримкою (за замовчуванням з 12 до 13:00);
  12. За IP адресою скрипти точно визначають приналежність комп'ютера до сайту. Передбачена структура: депо -> завод -> регіон -> країна;
  13. Скрипт визначається тип каналу (LAN або WAN) від робочої станції до файлового сервера, вимірюючи затримку під час пінгу;
  14. Реалізована процедура, яка по WMI кодами моделі комп'ютера присвоює комп'ютера модель, що має більш осмислену структуру. Наприклад, не модель «2320AR1», а «Lenovo ThinkPad X230». Все це легко адаптується під ваш парк;
  15. Скрипти збирають серійні номери комп'ютера, материнської плати, монітори, жорсткого диска, батареї у ноутбука. Дуже допомагають відстежити неавторизовані зміни конфігурації комп'ютерів, коли у нового комп'ютера раптом замість 4 Гб пам'яті стає 2 Гб, або авторизовані, коли йде заміна жорсткого диска по гарантії або материнської плати;
  16. Logon скрипти можуть працювати в Citrix сесіях.


Якщо дана тема буде цікава, то я знайду час оформити як слід інструкції і дистрибутив. Запитання можна задавати за особистою поштою.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.