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

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

У цій статті ми покажемо, як дозволити звичайним користувачам домену встановлювати драйвера в системі без прав адміністратора. Основна перевага пропонованого підходу - адміністратор домену сам формує список довірених драйверів, які користувачі можуть встановлювати в системі, тим самим ризик установки "шкідливого" драйвера мінімізований.

Щоб дозволити пересічним користувачам домену самим встановлювати драйвера пристроїв (без появи вікна підвищення привілеїв UAC), потрібно щоб робоче середовище користувачів відповідала таким умовам:

  • Встановлюваний драйвер повинен знаходитися в сховище драйверів (Driver Store)
  • Встановлюваний клас драйвера повинен бути дозволений для установки звичайними користувачами
  • Драйвер повинен бути підписаний валидной цифровим підписом довіреної видавця
Примітка. Раніше як окремий випадок цієї методики ми розглядали особливості установки принтерів в домені без прав адміністратора.

А тепер по порядку:
зміст:

  • Отримання каталогу з драйвером пристрою
  • Централізоване сховище драйверів
  • Список класів драйверів, дозволених для установки
  • Цифровий підпис драйвера

Отримання каталогу з драйвером пристрою

Щоб отримати актуальну версію драйвера для конкретного пристрою - найкраще знайти і завантажити останню версію драйвера на сайті виробника. Скачаний архів з драйвером потрібно розпакувати в окремий каталог.

АЛЕ! Не всі драйвера надаються в форматі, зручному для розповсюдження. Припустимо, якийсь драйвер встановлюється пропрієтарним інсталяційних пакетом. Яким же чином витягти з системи каталог з файлами встановленого драйвера?

Після установки всі файли драйвера зберігаються централізовано, в каталозі C: \ Windows \ System32 \ DriverStore \ FileRepository \.  Щоб знайти каталог з недавно встановленим драйвером, просто відсортуйте вміст цього каталогу за датою створення / модифікації. Вуаля! Залишилося скопіювати каталог з драйвером в мережевий каталог, який буде вказано на клієнтах в якості мережного Driver Store (про це трохи нижче).

Централізоване сховище драйверів

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

Шлях до сховища драйверів Windows задається в реєстрі параметром DevicePath (HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion). За замовчуванням сховище драйверів знаходиться в каталозі C: ​​\ Windows \ inf (% SystemRoot% \ Inf)

Можна розширити область сховища драйверів, за яким здійснюється пошук при установці нового драйвера в системі, вказавши в цьому реєстру додатковий каталог. У доменній середовищі найпростіше це зробити за допомогою розширення групових політик - Group Policy Preferences. Для цього в розділі політики Computer Configuration -> Preferences -> Registry додати новий елемент Registry Item з параметрами:

  • Action: Update
  • Hive: HKEY_LOCAL_MACHINE
  • Key Path: Software \ Microsoft \ Windows \ CurrentVersion
  • Value Name: DevicePath
  • Value Type: REG_SZ
  • Value Data:% SystemRoot% \ inf; \\ fs1 \ share \ inf

В якості додаткового довіреної каталогу сховища драйверів ми вказали мережеву папку \\ fs1 \ share \ inf (не забудьте, що обліковий запис комп'ютера повинна мати права на читання з цієї папки). Як джерело драйвером можна вказати відразу кілька мережевих каталогів, наприклад вказавши в якості значення змінної:% SystemRoot% \ inf; \\ fs1 \ share \ Printers; \\ fs2 \ Drivers \ USB; \\ fs3 \ Drivers \ VGA

Список класів драйверів, дозволених для установки

Щоб визначити код класу пристрою, відкрийте каталог з файлами драйвером пристрою. Відкрийте його inf файл і знайдіть рядок з параметром  ClassGUID. Код класу пристрою в нашому прикладі виглядає так: 4D36E97D-E325-11CE-BFC1-08002BE10318.

Щоб вирішити це клас пристроїв для самостійної установки користувачами, відкрийте діючу (або створіть нову) групових політику і в гілці Computer Configuration -> Administrative Templates -> System -> Driver Installation знайдіть політику Allow installation of devices using drivers that match these device setup classes. Увімкніть її і в якості значення вкажіть скопійований раніше код класу пристрою.

Цифровий підпис драйвера

Щоб користувач міг самостійно встановити драйвер, він в обов'язковому порядку повинні бути підписаний, а сертифікат видавця цифрового підпису повинен знаходиться в списку довірених. Більшість драйверів великих вендорів підписані цифровими підписами Microsoft і є довіреними.

Але в цьому правилі є винятки. Щоб отримати сертифікат видавця такого драйвера, встановіть його в системі з правами адміністратора. Під час установки драйвера з'явиться попередження. Встановіть прапорець "Always trust software from ... " та натисніть Install. Після установки драйвера відкрийте оснащення управління сертифікатами (certmgr.msc), Знайдіть сертифікат видавця в розділі  Trusted Published-> Certificates. Клацніть ПКМ по сертифікату потрібного видавця та експорту його в файл.

Далі цей сертифікат за допомогою групової політики потрібно поширити на всіх комп'ютерах, на яких потрібно дозволити встановлення цього драйвера користувачами. Для цього просто імпортуйте збережений сертифікат в розділ GPO Computer Configuration -> Windows Settings -> Security Settings -> Public Key Polices -> Trusted Publishers.

Порада. У тому випадку, якщо потрібно встановити драйвер, цифровий підпис якого відсутній, можна спробувати самостійно підписати його самоподпісанного сертифікатом. Детально процес описаний в цієї статті.

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