Установка пристроїв в Windows 7 без прав адміністратора

Одним з актуальних питань використання Windows 7 в корпоративному середовищі - надання мобільним користувачам прав на установку локальних пристроїв без призначення їм прав локального адміністратора. У попередніх версіях Windows (NT 4, Windows 2000 і XP) в більшості випадків це питання вирішувалося просто: мобільним користувачам надавали права локального адміністратора (або Power User), лише тому що у відрядженні їм може знадобитися встановити і підключити зовнішній пристрій. Якщо кілька років тому права на установку локальних пристроїв були потрібні переважно для підключення локальних принтерів, то зараз список таких зовнішніх пристроїв істотно розширився, тепер необхідно не забувати про підтримку мобільних телефонів, гарнітури, камерах і т.д.

Microsoft додала ряд нововведень в свої останні ОС (Windows Vista і Windows 7), які реалізують можливості централізованого корпоративного управління установкою локальних пристроїв. У даній статті я спробую пояснити, що ж відбувається, коли до клієнта Windows 7 підключається нове зовнішнє пристрій і яким чином на цей процес можна впливати за допомогою налаштувань групових політик.

У Windows XP пересічний користувач міг встановити новий пристрій, тільки в тому випадку, якщо даний пристрій підтримується одним із стандартних драйверів Windows, що входять в комплект установки, або ж якщо драйвер для цього пристрою доступний через службу оновлень Windows Update. У Windows XP кількість пристроїв, підтримуваних такими встановленими драйверами в порівнянні з Windows 7 було суттєво обмежено. Службу, що дозволяє оновлювати драйвера пристроїв через Windows Update, Microsoft запустила в 2005 році, а як ви пам'ятаєте через рік вже була випущена Windows Vista, тому багато виробників апаратного забезпечення, схоже, вирішили не витрачати кошти на забезпечення можливості оновлення драйверів своїх пристроїв для Windows XP через Центр оновлень Windows. І саме з цих причин, щоб надати мобільному користувачеві права на установку нового обладнання, корпоративним адміністраторам доводилося давати користувачам права локальних адміністраторів на їх ноутбуках.

Разом з виходом Windows Vista процедура установки нових драйверів дещо змінилася. У попередніх версіях Windows драйвера пристроїв могли зберігатися в різних каталогах, тепер же в Windows Vista і наступних версіях Windows, з'явилося поняття "сховище драйверів"(Driver Store), Яке є довіреною місцем розташування для зберігання всіх вбудованих драйверів і пакетів драйверів сторонніх розробників. Тепер в Windows можна встановити тільки драйвер, що зберігається в цьому сховищі Driver Store. Процес доставки драйвера в Driver Store називається "staging" (поставка). Гарна новина полягає в тому, що будь-який драйвер, який є в сховищі драйверів, може бути встановлений будь-яким користувачем без прав локального адміністратора.

Давайте уявимо що ж відбувається, коли користувач намагається підключити новий пристрій до клієнта на Windows 7. За замовчуванням Windows 7 намагається знайти відповідний драйвер на Windows Update, і якщо шуканий драйвер буде знайдений, автоматично завантажить і помістить його в локальне сховище Driver Store, т. е. перед установкою буде здійснено процес поставки драйвера (staging). У тому випадку, якщо відповідного драйвера що не знайдено, Windows продовжить пошук відповідного драйвера в локальному сховищі. Якщо відповідний драйвер буде знайдений, Windows встановить його. Якщо драйвер знову не буде виявлений, система продовжить пошук по шляху, вказаному в значенні ключа реєстру DevicePath, це може бути локальний диск, наприклад C: \ Drivers або мережева папка. Якщо і там драйвер не буде знайдений, Windows повідомить про те, що відповідного драйвер не було знайдено.

Описаний вище процес повинен допомогти більшості домашніх користувачів і користувачам невеликих компанії вирішити проблему установки локальних пристроїв без наявності прав локального адміністратора. Однак в мережах великих організацій з'явиться ряд проблем:

  • Багато компаній хочуть чітко розуміти і контролювати те, що встановлюється на їх комп'ютерах. І навіть якщо розглядати вміст сайту Microsoft Windows Update як довірена, у багатьох компаніях політика безпеки забороняє доступ на зовнішні ресурси безпосередньо (в тому числі і на Windows Update Server).
  • Наскільки мені відомо, неможливо розділити процес пошуку на вузлі оновлень Microsoft оновлень безпеки Windows Security і драйверів пристроїв, отже, якщо організація використовує свій локальний сервер WSUS, то клієнти будуть шукати драйвера на зовнішньому сервері Windows Update Server, і він же буде використовуватися для скачування оновлень Windows. Тобто використання локального WSUS втрачає свій сенс. (Якщо я не правий, поправте мене).
  • Якщо компанія застосовує дуже жорстку політику щодо використання конкретних пристроїв, то системні адміністратори повинні забезпечувати актуальність драйверів в локальному сховищі Driver Store на всіх клієнтах компанії.

Але, не дивлячись на описані проблеми, існує цілий ряд обхідних рішень. І, як і багато інших налаштування Windows, управління установкою драйверів пристроїв можна керувати за допомогою групової політики.

Налаштування ці знаходяться в наступному розділі групової політики: Computer Configuration \ Administrative Templates \ System \ Device Installation. Параметр в розділі User Configuration \ Administrative Templates \ System \ Driver Installation будуть ігноруватися, так як він не застосуємо кWindows 7.

Забороняємо клієнтам шукати драйвера на вузлі Windows Update

Щоб заборонити клієнтам Windows 7 шукати драйвера на вузлі Windows Update, активуйте групову політику "Specify search order for device driver source locations"І налаштуйте її -" Do not search Windows Update ".

Дозволяємо звичайним користувачам встановлювати драйвера пристроїв зазначених типів

Параметр групової політики з ім'ям "Allow installation of devices using drivers that match these device setup classes"(Знаходиться в гілці Configuration \ Administrative Templates \ System \ Device Installation \ Device Installation Restrictions IT Administrators) дозволяє вирішити звичайним користувачам завантажувати і встановлювати драйвера пристроїв зазначених класів. Це означає, що якщо IT департамент не в змозі встежити за пакетами драйверів для принтерів, які використовують користувачі компанії, можна дозволити установку драйверів принтерів всім користувачам мережі, установку драйвером для інших класів пристроїв же можна заборонити.

Попереднє завантаження драйверів в сховище Driver Store в Windows 7

Для ряду широко поширених зовнішніх пристроїв адміністратор може заздалегідь помістити драйвера в сховище на всі системи мобільних користувачів компанії. Зробити це можна в такий спосіб:

  • Поширити драйвера разом зі стандартним корпоративним чином ОС
  • Встановити драйвера після установки системи клієнта - postinstall (MDT, SCCM, WSUS)
  • Поширення драйверів на вимогу, у вигляді пакету програм

Я не буду подібно розписувати реалізацію кожного із цих сценаріїв, але спробуємо розібратися з типовою ситуацією, з якою адміністратор може зіткнутися на практиці.

Практично будь-який користувач хоче мати можливість синхронізації свого календаря з мобільним пристроєм, і якщо цей пристрій працює під управлінням Windows Mobile, для підключення цього пристрою до комп'ютера з Windows 7 обов'язково буде потрібен Windows Mobile Device Center.

Якщо ви точно не знаєте, який драйвер потрібен, дозвольте системі самої знайти і встановити потрібний драйвер з вузла Windows Update. Після закінчення установки перейдіть в каталог C: \ Windows \ System32 \ Driverstore і знайдіть свіжо створену папку.

Тепер ви може просто скопіювати це каталог і поширити його по локальних сховищ драйверів на корпоративні ПК. Інший метод - завантажити пакет з драйвером безпосередньо (як це зробити описано тут http://support.microsoft.com/kb/323166) з вузла Windows Update Catalogue.

Ви скачаєте приблизно такий файл: X86-ar_bg_zh-tw_cs_da_de_el_en_es_fi_fr_ ... v_th_tr_sl_et_lv_lt_zh-cn_pt_ja-nec-20060042_b5eca0da489018bbc1930e42252b1034f739af15.cab. Далі цей CAB необхідно розпакувати.

Далі я покажу, яким чином можна додати скачаний драйвер в сховище драйверів Driver Store Windows 7.

Щоб додати драйвер в сховище, можна скористатися утилітою pnputil.exe, набравши приблизно наступну команду:

Pnputil -a c: \ data \ mobile \ wcerndis.if_x86_neutral_56159f2c2377f6d2 \ wcerndis.inf

Для тих, кому цікаво, що насправді відбувається при цій процедурі, познайомтеся з журналом c: \ Windows \ INF \ setupapi.dev.log.

Тепер, коли драйвер пристрою поміщений (pre-staged) в сховище драйверів Windows 7, ми можемо зайти під звичайним користувачем і підключити наш мобільний пристрій (в даному прикладі це Samsung Omnia GT8000 з Windows Mobile 6.5).

І знову докладний лог того, що відбувається в setupapi.dev.log.

Отже драйвер вже поміщений в каталог драйверів системи і після першого підключення пристрою до комп'ютера він встановиться і буде доступним до використання.