THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму

Для керування пристроями і пов'язаними з ними драйверами існує кілька інструментів: "Диспетчер пристроїв", "Пристрої та принтери", "Device Stage ™" та інструмент Pnputil, який запускається з командного рядка з підвищеними привілеями.

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

  • Переглянути список встановлених пристроїв
  • видалити пристрій
  • Вмикати та вимикати пристрій
  • Усунути неполадки пристрою
  • Оновити драйвер пристрою
  • Відкотити драйвер.

Стан пристрою показує, чи має воно встановлені драйвери і чи може Windows взаємодіяти з цим пристроєм. Щоб переглянути стан пристрою:

  1. Клацніть правою кнопкою миші на пристрої та виберіть команду "Властивості".
  2. Перейдіть на вкладку "Загальні" і в області стану, перегляньте опис поточного стану пристрою.

За допомогою "Диспетчера пристроїв" можна управляти пристроями тільки на локальному комп'ютері.

Пристрої та принтери.

Категорія "Пристрої та принтери" в панелі управління так само надає додаткову можливість для управління пристроями. Для полегшення складної конфігурації завдання, через весь процес установки вас проведе Майстер конфігурації. Windows 7 розпізнає нові пристрої і намагається автоматично завантажити та встановити всі, необхідні для цього пристрою драйвери.

Пристрої, які відображаються в "Пристрої та принтери", зазвичай є зовнішніми пристроями, які ви підключаєте або відключаєте від комп'ютера через порт або мережне підключення.

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

Device Stage

Device Stage надає користувачам новий спосіб для доступу до пристроїв і додаткові опції для управління ними. Пристрої відображаються на панелі завдань як фото-іконка. Цей значок на панелі завдань може надати швидкий доступ до загальних завдань пристрої; Індикатори стану, які дозволяють користувачам швидко зрозуміти стан батареї, стан синхронізації пристрою, що залишилися ємність, посилання на керівництво користувача, додаткові додатки, інформаційне співтовариство і допомогу, або додаткові продукти і послуги.

У специфікаціях технології PnP визначено, як комп'ютер виявляє і налаштовує підключається обладнання, а також автоматично встановлює драйвери. Технологія PnP підтримується в Windows 7, тому після підключення пристрою автоматично виконуються пошук відповідного пакета драйверів і налаштування пристрою. Це істотно спрощує установку.

Проте, не слід дозволяти користувачам підключати до робочих комп'ютерів будь-які пристрої. Програма драйвера працює як частина ОС, маючи необмежений доступ до всього комп'ютера, тому слід дозволяти установку тільки перевіреного обладнання. Коли користувач Windows 7 приєднує пристрій, відбувається його виявлення. служба Plug and Play ідентифікує пристрій і шукає в сховище потрібний драйвер. Якщо він знайдений, пристрій вважається авторизованим, і файли драйвера за допомогою служби Plug and Play копіюються з сховища драйверів в системне розташування, як правило, в папку С: \\ Windows \\ System32 \\ Drivers. За допомогою служби Plug and Play виконується настройка реєстру і запуск встановленого драйвера.

Установка драйверів пристроїв з вузла Windows Update

За замовчуванням оновлені драйвери пристроїв, вивантажені до служби Windows Update ( Windows Update), Завантажуються і встановлюються на клієнтських комп'ютерах автоматично. Змінити таку поведінку можна в діалоговому вікні Параметри встановлення пристроїв ( Device Installation Settings). Найпростіший спосіб його відкрити - ввести в поле пошуку меню Пуск ( Start) Фразу установка пристрою ( device installation) І клацнути варіант Зміна параметрів установки пристрою ( Change Device Installation Settings).

За умовчанням встановлено значення Так, робити це автоматично (рекомендується) ( Yes, Do This Automatically (Recommended)). Щоб заборонити установку на комп'ютери з Windows 7 неперевірених драйверів, виберіть варіант Ніколи не встановлювати драйвери з вузла Windows Update ( Never Install Driver Software From Windows Update).

У разі вибору параметра Завжди встановлювати найбільш відповідні драйвери з вузла Windows Update ( Always Install The Best Driver Software From Windows Update), Доцільність заміни вже встановленого драйвера визначається автоматично. При цьому у вас не буде можливості протестувати новий драйвер перед установкою. Вибравши варіант Встановлювати драйвери з вузла Windows Update, якщо вони не знайдені на комп'ютері ( Only Install Driver Software From Windows Update If It Is Not Found On My Computer), Ви також не зможете протестувати новий драйвер перед установкою. У середовищі підприємства, особливо, коли ПО поширюється через служби оновлення Windows ( WSUS), Можливість оновлення драйверів з сайту служби Windows Update (Windows Update) слід відключити, а сайт виключити з шляху пошуку.

Розміщення драйвера пристрою

Якщо потрібного драйвера немає в сховище, адміністратор повинен схвалити цей пристрій. Цей процес називається розміщенням (staging).

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

У Windows 7 процес розміщення починається з пошуку відповідного пакета драйвера в папках, зазначених в запису реєстру DevicePath. Як налаштувати додаткові папки з драйверами пристроїв в Windows 7, ви дізнаєтеся на практикумі даного заняття. Якщо відповідний драйвер не знайдений, виконується пошук у службі Windows Update (Windows Update). Потім користувачеві пропонується вставити інсталяційний диск. Якщо драйвер знайдений, система перевіряє, чи є у користувача право розміщувати пакет драйвера в сховище. Для цього у користувача повинні бути облікові дані адміністратора або політика комп'ютера повинна допускати установку драйверів відомих пристроїв звичайним користувачам. Потім виконується перевірка цифрового підпису пакета. Якщо пакет драйвера не підписаний або підписаний за допомогою сертифіката, що не знайденого в сховище надійних видавців, користувачеві буде запропоновано підтвердити дію. Якщо драйвер затверджений повноважним користувачем, копія пакету драйвера розміщується в сховище драйверів і установка триває.

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

Установка пристрою, який не підтримує Plug and Play

Якщо пристрій не підтримує PnP (наприклад, старе пристрій), для його установки вам знадобиться обліковий запис з адміністративними повноваженнями. Якщо у вас є інсталяційний диск пристрою, на комп'ютері рекомендовано скористатися записаної на ньому програмою установки. Зазвичай це робиться перед підключенням пристрою. В іншому випадку відкрийте Диспетчер пристроїв ( Device Manager), Клацніть правою кнопкою ім'я комп'ютера в дереві консолі і виберіть команду Встановити старе пристрій ( Add Legacy Hardware). Відкриється Майстер установки обладнання ( Add Hardware Wizard).

Виконуючи інструкції майстра, ви зможете виконати пошук обладнання або встановити обладнання, вбрання вручну зі списку. У першому випадку пристрій необхідно підключити до комп'ютера. Процедура установки така ж, що і при установці PnP-обладнання, що не пройшов попередню авторизацію. Якщо ви вирішите вибрати обладнання самостійно, вам буде запропоновано список типів пристроїв. Якщо ви виділите варіант Показати всі пристрої ( All Devices), Виберіть пристрій зі списку виробників. Якщо у вас є драйвер (не обов'язково пакет установки драйвера) на знімному диску або в папці на жорсткому диску, а потім натисніть кнопку Встановити з диска ( Have Disk). Після вибору драйвера майстер встановить обладнання. При наявності несправностей (наприклад, помилки з кодом 10 - не вдається запустити пристрій) вони будуть перераховані на останній сторінці майстра.

Налаштування політик установки пристроїв

На практикумі цього заняття вам треба буде розв'язати користувачам, які не є адміністраторами, встановлювати пристрої заданого класу установки в редакторі локальної групової політики ( Local Group Policy Editor). З його допомогою можна налаштувати і політики встановлення пристроїв. Послідовно розгорніть вузли: Конфігурація комп'ютера ( Computer Configuration), Адміністративні шаблони ( Administrative Templates), Система ( System), Установка пристрою ( Device Installation) І клацніть елемент Обмеження на установку пристроїв ( ). Перейдіть на вкладку Стандартний ( Standard) Зі списком політик.

Щоб відкрити Редактор локальної групової політики ( Local Group Policy Editor), Введіть gpedit.msc в полі пошуку меню Пуск ( Start). Не забудьте переглянути відомості про кожну політиці в розділі Обмеження на установку пристроїв ( Device Installation Restrictions) І в розділі Установка пристрою ( Device Installation), Двічі клацнувши політику.

Робота з драйверами пристроїв

Відомо, що для установки обладнання потрібно знайти файли установки драйвера і встановити драйвер. Після установки драйвер можна оновити (встановивши інший драйвер), видалити, відключити і включити. Якщо ви оновили драйвер і новий драйвер працює гірше попереднього, виконайте відкат до попереднього драйвера.

Якщо оновлений драйвер поширюється через служби Windows Update ( Windows Update), Як правило, він встановлюється автоматично після завантаження. У диспетчері пристроїв ( Device manager) Також є можливість оновлення драйвера. Зазвичай нею користуються для установки нового або оновленого драйвера від постачальника обладнання до публікації драйвера у службі Windows Update (Windows Update). Щоб отримати останню версію драйвера і протестувати його на комп'ютері-зразку під управлінням Windows 7, завантажте файли драйвера з веб-сайту постачальника і виконайте оновлення драйвера вручну.

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

Існує два способи почати процес оновлення драйвера в диспетчері пристроїв ( Device Manager):

  • клацніть правою кнопкою і виберіть команду Оновити драйвери ( Update Driver Software);
  • двічі клацніть пристрій і клацніть Оновити ( Update Driver) На вкладці Драйвер ( Driver).

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

При наявності конфлікту драйверів, якщо мова йде не про PnP-пристрої, спробуйте відключити один з драйверів або зупинити його. Щоб відкотити драйвер, відкрийте вкладку Драйвер ( Driver) Вікна властивостей пристрою. Якщо встановлений тільки один драйвер, кнопка Відкинути ( Roll Back Driver) Недоступна. Відкат драйвера виконують, якщо оновлений драйвер пристрою працює гірше попереднього або конфліктує з іншими драйверами. При цьому попередній драйвер залишається в сховище, а процес відбувається без втручання користувача (за винятком підтвердження дії у вікні UAC).

Щоб зібрати відомості про неполадки драйвера або просто отримати додаткові відомості про драйвер, клацніть кнопку Відомості ( Driver Details) На вкладці Драйвер ( Driver). На екрані відобразиться інформація про місце зберігання файлів драйвера. Зверніть увагу, що це не сховище драйверів (воно є захищеною областю). Файли працюючого драйвера, як правило, мають розширення SYS і діють як частина ОС. Файли установки драйвера мають розширення INF. У відомостях про драйвер міститься інформація про постачальника (зазвичай, сторонньому виробнику), версії файлу, цифрового підпису (як правило, Майкрософт) та авторські права. Версія файлу знадобиться для пошуку відомостей про проблемний драйвер в Інтернеті, наприклад, в блогах Майкрософт.

Вирішення конфліктів драйверів

В наші дні конфлікти драйверів зустрічаються куди рідше, ніж раніше. А адже ще років 15 назад при підключенні принтера могла перестати працювати миша! Майже все сучасне обладнання підтримує технологію PnP. Установка відбувається під управлінням ОС, і конфліктів, як правило, вдається уникнути. Однак система неідеальна, і можливість виникнення конфліктів є. Зазвичай, конфлікт виникає, коли двом пристроям потрібні одні і ті ж ресурси, особливо при перетині переривань або діапазонів введення-виведення. Задати використання ресурсів можна в діалоговому вікні Властивості ( Properties) На вкладці Ресурси ( Resources). Для більшості драйверів встановлений прапорець Автоматична настройка ( Use Automatic Settings), А кнопка Змінити ( Change Settings) Недоступна.

Конфлікти між пристроями PnP виникають рідко. Для їх вирішення досить на час відключити один з пристроїв. Іноді вирішити конфлікт можна, відновивши драйвер (якщо оновлення є) або видаливши і повторно встановивши обладнання. Якщо в конфлікті бере участь пристрій, що не підтримує PnP, для вирішення проблеми може знадобитися його зупинка. Щоб зупинити пристрій, що не підтримує PnP, виконайте наступні дії:

  1. Відкрийте Диспетчер пристроїв ( Device Manager).
  2. В меню Вид ( View) Виберіть команду Показати приховані пристрої ( Show Hidden Devices).
  3. Двічі клацніть елемент Драйвери несамонастраіваемих пристроїв ( Non-Plug and Play Drivers), Клацніть правою кнопкою пристрій, який потрібно зупинити, і виберіть Властивості ( Properties).
  4. На вкладці Драйвер ( Driver) Клацніть кнопку Зупинити ( Stop), Потім Ok.

Майже так само здійснюється і повторний запуск пристрою. Тільки замість кнопки Остановить ( Stop) Потрібно натиснути кнопку Запустити ( Start). Крім того, на цій вкладці можна змінити тип запуску. Зверніть увагу: якщо кнопка Запустити ( Start) На вкладці Драйвер ( Driver) Недоступна, драйвер вже завантажений.

Пошук конфліктів в програмі Відомості про систему (System Information)

Якщо ви припускаєте, що драйвер пристрою не працює належним чином через конфлікт ресурсів, відкрийте утиліту Відомості про систему ( System Information) І перегляньте вимоги, що пред'являються усіма пристроями до параметрів введення-виведення і IRQ. Це зручніше, ніж відкривати вкладку Ресурси ( Resources) Для кожного пристрою окремо. Щоб запустити утиліту, введіть msinfo32 в рядку пошуку меню Пуск ( Start), У вікні Виконати ( Run) Або в командному рядку. Для запуску Msinfo32 не потрібно командний рядок з підвищеними повноваженнями. У програмі наводяться загальні відомості про систему.

У вузлі Апаратні ресурси ( Hardware Resources) Ви знайдете відомості про земельні ресурси пам'яті, вводу-виводу і переривання IRQ для кожного з пристроїв комп'ютера. Найбільш корисні відомості для вирішення конфліктів містить вузол Конфлікти і спільне використання ( Conflicts / Sharing). При виникненні проблем з конкретним пристроєм введіть його ім'я в поле Шукати ( Find What).

Відомості про конкретні пристроях (CD-ROM, звуковий пристрій, дисплей і т.д.) знаходяться в вузлі Компоненти ( Components). При діагностиці найкорисніший розділ - Пристрої з неполадками ( Problem Devices). У ньому перераховані непрацюючі пристрої, пристрої, для яких не встановлені драйвери, та ін. У вузлі Програмне середовище ( Software Environment) Є розділ Системні драйвери ( System Drivers), В якому перераховані драйвери ядра. Тут можна дізнатися, працює драйвер чи ні. Ви можете знайти драйвер на ім'я або опису за допомогою поля Шукати ( Find What).

Диспетчер перевірки драйверів

Не завжди неполадки драйверів викликані конфліктами. Буває, що пристрої працюють неправильно або виникають STOP-помилки, а відомостей про конфлікти немає, і відключення інших драйверів нічого не дає. У комплект Windows 7 входить інструмент Диспетчер перевірки драйверів ( Driver Verifier Monitor), Що дозволяє вести спостереження за драйверами пристроїв і виявляти неприпустимі виклики процедур або дії, які можуть завдати шкоди системі. Він дозволяє ставити драйвери «під навантаження» і тестувати їх на предмет некоректної поведінки.

Диспетчер перевірки драйверів ( Driver Verifier Monitor), Що викликається командою verifier. Прапор / volatile дозволяє запустити перевірку будь-якого драйвера без перезавантаження, навіть якщо Диспетчер перевірки драйверів ( Driver Verifier Monitor) Вже не працює, а також запустити перевірку вже завантаженого драйвера. Подібне нововведення, вперше представлене в Windows Vista, значно скорочує число перезапусків. Це економить час і дозволяє вести спостереження за драйвером під час підключення або видалення пристрою.

За допомогою диспетчера ви можете запитувати параметри, додавати і видаляти пристрої, але найбільшою функціональністю володіє параметр / faults, що дозволяє вводити навантажувальні тести заданого рівня складності для визначення здатності драйвера коректно працювати в будь-яких ситуаціях. Наприклад, можна імітувати недолік ресурсів або режим очікування, який повертає несподіваний результат. Ви можете спостерігати за використанням ресурсів (розподілом пулу) і стежити за кількістю надісланих в систему помилок. Диспетчер перевірки драйверів ( Driver Verifier Monitor) - це головним чином інструмент для створення навантаження, який поінформує вас, наприклад, про можливість збою драйвера, якщо використання диска або пам'яті перевищить певний поріг. Спостерігати за використанням ресурсів і діагностувати причини браку ресурсів можна за допомогою більш загальних засобів, наприклад Системного монітора ( Performance Monitor) Або Диспетчера завдань ( Task Manager).

Підписи драйверів і цифрові сертифікати

Цифрові підписи дозволяють адміністраторам і користувачам, що встановлює ПО для Windows, отримувати відомості про справжність видавця, який надав програмний пакет. Для установки непідписаних компонентів, які працюють в режимі ядра, потрібні адміністративні повноваження. Драйвери повинні бути підписані за допомогою сертифікатів, які є довіреними в Windows 7. Сертифікати з підписами надійних видавців зберігаються в сховищі сертифікатів Довірені видавці ( Trusted Publishers).

Адміністратор вільний затвердити установку непідписаного драйвера або драйвера з підписом, якої немає в сховище сертифікатів від довірених видавців. Це допустимо, за умови що драйвер встановлюється на тестовий комп'ютер в ознайомлювальних цілях, а не з метою масового поширення на клієнтські комп'ютери. Багато драйвери приходять з надійних джерел (наприклад, від виробників обладнання), але ще не пройшли процес перевірки, результатом якого є цифровий підпис. Не мають підписи навіть деякі драйвери Майкрософт. Коли ви або інші адміністратори встановлюєте драйвери, авторизація - не проблема. Інша справа, коли вам потрібно, щоб драйвер встановили звичайні користувачі. Навіть після розміщення драйвера користувачі не зможуть встановити його, оскільки затвердити установку драйвера без дійсної підпису може тільки адміністратор.

Отримати самозаверяющій (self-signed) сертифікат, дійсний в межах організації, можна тільки від сервера ЦС під керуванням Windows Server з працюючими службами сертифікації ( Certificate Services). Такий сертифікат не дійсний в іншій організації, якщо між організаціями немає довірчих відносин. Навіть всередині організації Майкрософт рекомендує застосовувати цю процедуру тільки в тестовій мережі, а у виробничому середовищі встановлювати виключно драйвери з дійсної підписом.

Щоб підписаний драйвер пристрою міг використовуватися в інших організаціях, сертифікат повинен бути випущений довіреним зовнішнім ЦС, наприклад, VeriSign. Отримати такий сертифікат набагато складніше. Щоб користувачі могли встановити драйвер без довіреної підпису, потрібно підписати пакет драйвера пристрою за допомогою цифрового сертифіката, а потім доставити сертифікат на клієнтські комп'ютери. Так ви позбавите користувачів від необхідності перевіряти ступінь надійності видавця або драйвера пристрою.

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

Наявність цифрового підпису - гарантія того, що пакет прийшов із заявленого джерела (справжність) без пошкоджень і змін (цілісність). Цифровий сертифікат служить посвідченням організації. Він заслуговує на довіру, так як піддається електронної перевірки в центрі сертифікації.

Загальна процедура підпису драйвера пристрою така:

  1. Створіть цифровий сертифікат в консолі Сертифікати ( Certificates) На сервері сертифікатів. Крім того, можете скористатися утилітою MakeCert.
  2. Додайте сертифікат у сховищі Довірені кореневі центри сертифікації ( Trusted Root Certification Authorities). Ця операція виконується в консолі Сертифікати ( Certificates) Шляхом копіювання і вставки.
  3. Додайте сертифікат у сховищі Довірені видавці ( Trusted Publishers). Це також робиться в оснащенні Сертифікати ( Certificates).
  4. Підпишіть пакет драйвера пристрою за допомогою сертифіката. Для цього підготуйте INF-файл пакету драйвера, створіть файл каталогу для пакета драйвера і підпишіть файл каталогу за допомогою утиліти Signtool.

У попередній частині цього циклу ми розглянули два підходи ( "let Windows decide" і "let me decide"), які можна використовувати для управління позаштатними драйверами при виконанні установки Lite Touch за допомогою MDT 2010. У цій частині ми завершимо розмову про проблему управління драйверами , тут будуть дані деякі поради, хитрощі і одна історія. Перша історія надана мені одним з читачів, Тімом Лорс (Tim Lors) і вона є відмінним наочним прикладом тих проблем, з якими ви можете зіткнутися при спробах управління драйверами під час установки:

"Більше року тому я написав програмний сценарій, який встановлює всі драйвери на ПК WinXP. Проблема, з якою я зіткнувся при виборі драйверів, не була пов'язана з ОС. Це була нездатність виробника належним чином реалізувати PnP між inf файлами їх драйверів і самим апаратним обладнанням . Якщо говорити точніше, inf файл вказував на те, що він є кращим драйвером для певного апаратного пристрою, коли, насправді, він не працює з таким пристроєм. Єдиним способом підбору підходящого драйвера в такій непростій ситуації виявилося порівняння ідентифікаційних номерів PnP апаратного обладнання зі списком відомих проблемних драйверів, і якщо я знаходив збіги, я вручну вибирав відповідний драйвер на основі додаткових критеріїв "зазвичай номер моделі ПК. Найпоширенішим додатковим критерієм, необхідним для "let me decide" вибору, був номер моделі ПК, але іноді включав версію BIOS і PnP subset ID, а в деяких рідкісних випадках це був спосіб проб і помилок. Звичайно, метод спроб і помилок досить складний, оскільки, коли Windows встановлювала той драйвер, який вважала найкращим, доводилося ізолювати неробочий драйвер від Windows, або система просто перевстановлювати його. Зверніть увагу, що така ситуація виникала в середовищі, що містить майже 10 000 ПК більш ніж 25 різних моделей ".

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

Пошук драйверів

Першою трудністю є пошук позаштатних драйверів, які можуть знадобитися вашим системам. Деякі виробники полегшують це завдання, інші - ні, і компанія Dell є представником першої групи, оскільки надає драйвери для кожної настільної системи в віде.cab файлу під кожну операційну систему. Для завантаження етіх.cab файлів перейдіть на сайт http://www.delltechcenter.com/ і в прокручувати меню зліва виберіть Home, Microsoft, Microsoft System Center, SCCM "System Center Configuration Manager, Dell Business Client Operating System Deployment, Dell Business Client Operating System Deployment "The .CAB Files і ви побачите сторінку, показану на малюнку 1:

Малюнок 1: Завантаження драйверів для клієнтських систем Dell в віде.cab файлів

Після загрузкі.cab файлу ви можете отримати його в папку, потім послатися на цю папку при імпорті драйверів в свій установчий ресурс.

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

Витяг INF файлів з EXE

Іноді виробники систем поставляють драйвери пристроїв в форме.exe файлів, а не.cab файлів. В цьому випадку, відмінним набором інструментів є WinRAR, який дозволяє вам витягувати файли драйверів із.exe файлу в папку. Пам'ятайте, для того щоб імпортувати драйвер, MDT требуется.inf файл і відповідні файли драйвера "неможливо імпортіровать.exe файл, як драйвер.

Запобігання включення драйверів

Щоб не дозволити включення імпортованого вами драйвера (наприклад, якщо ваші перевірки показали, що драйвер після установки викликає проблеми), просто відкрийте властивості драйвера і очистіть поле Enable This Driver (малюнок 2):

Малюнок 2: Можна забороняти або дозволяти включення драйвера

Зверніть увагу, що вищевказаний драйвер був призначений для 32- і 64-бітової версії Windows. Якщо ви виявили, що він не працює під 64-bit Windows, ви можете залишити драйвер включеним, але прибрати прапорець з x64, що не дозволить включити його під час установки 64-bit Windows.

При бажанні ви навіть можете відключати всі драйвери в папці шляхом відключення папки (малюнок 3):

Малюнок 3: Можна відключати призначену для користувача папку в установчому ресурсі

Управління завантажувальними драйверами за допомогою профілів вибору

Також можна використовувати профілі вибору для управління драйверами під час стадії завантаження Windows PE в установці LTI. Для цього відкрийте властивості вашого інсталяційного ресурсу і виберіть закладку Windows PE x64 Components або Windows PE x86 Components для управління драйверами архітектури тієї ОС, яку ви встановлюєте (малюнок 4):

За умовчанням вибраний All Drivers And Packages профіль вибору, але тільки мережеві драйвери і драйвери пристроїв зберігання з цього профілю вибору включені в образ завантаження Windows PE. При необхідності можна створювати власний профіль вибору, який буде включати специфічні для апаратних засобів WinPE драйвери для ваших цільових систем.

Використання декількох груп драйверів для установки по марці і моделі

У попередній частині ми подивилися, як визначати одну групу драйверів під назвою DriverGroup001 і використовувати її для управління драйверами під час установки на основі марки і моделі цільових комп'ютерів. Кіт Гарнер (Keith Garner), фахівець з розгортання систем в Xtreme Consulting Group, виклав відмінний пост, який дає додаткову інформацію по цій темі, і показує вам, як можна організувати драйвери більш ефективно, а потім використовувати кілька груп драйверів для управління тим, як вони включаються під час установки.

Ще одним корисним постом є цей пост про використання псевдонімів моделей, написаний Майклом Мерголо, старшим консультантом в Microsoft Consulting Services.

Додавання драйверів в образ

Можна використовувати DISM.exe команду для додавання драйверів в автономні образи, просто змонтувати образ і використовуйте команду DISM с / add-driver опцією (дивіться для додаткової інформації про використання DISM.exe).

Для додавання драйверів в сховище драйверів (тобто, попереднє уявлення драйверів, щоб вони були доступні, коли Windows визначає пристрої, які потребують драйверах), можна використовувати PnPutil.exe команду. Ця команда може бути корисною, якщо ви, наприклад, використовували Microsoft Update Catalog для загрузкі.cab файлу драйверів для принтера і хочете попередньо уявити ці драйвери на своєму еталонному комп'ютері, щоб під час установки ці драйвери були доступні. Додаткову інформацію про цю команду можна знайти і.

Обслуговування конфігурації драйверів під час створення образу Windows

Нарешті, якщо ви створюєте еталонний образ і встановлюєте його на ідентичні апаратні засоби, ви можете забезпечити більш швидкий спосіб першого завантаження для користувачів шляхом настройки PersistAllDeviceInstalls параметрів в своєму файлі відповіді для sysprepping підготовки свого еталонного комп'ютера. подробиці дивіться

Вступ

Тут описується програмування служб
в ОС Windows (я також буду вживати термін
"Сервіс", що рівнозначно терміну "служба"),
наводиться приклад використання для
завантаження драйверів або руткітів.

сервіси

При старті ОС запускається менеджер служб (SCM
Manager) .Счітивая дані з реєстру (ім'я
сервісу, яким чином будуть завантажуватися, тип драйвера і т.д.),
він становить базу даних для управління
службами. Я опишу деякі функції, з
допомогою яких можна управляти сервісами.
Спочатку потрібно створити зв'язок з цією
базою даних (SCM database), потім передати
покажчик баз даних деяких функцій,
керуючими сервісами.

Як я вже сказав, перш за все потрібно
створити зв'язок з базою даних SCM. Для цього
служить функція OpenSCManager.

SC_HANDLE OpenSCManager (LPCTSTR lpMachineName, LPCTSTR
lpDatabaseName, DWORD dwDesiredAccess);

LPCTSTR lpMachineName - покажчик на рядок,
завершується нулем, яка вказує на ім'я
локального комп'ютера. цей параметр
можна встановити в NULL.

LPCTSTR lpDatabaseName- покажчик на рядок,
завершується нулем, яка містить в собі ім'я
відкривається бази данних.Етот параметр
також слудует встановити в NULL.

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

SC_MANAGER_ALL_ACCESS - стандартні права доступу до БД.
SC_MANAGER_CONNECT - дозволяє з'єднуватися з БД SCM.
SC_MANAGER_CREATE_SERVICE- дозволяє створення нових
сервісів.

Створивши зв'язок з БД SCM, ви можете управляти
сервісами.

Функція OpenService служить для отримання
описателя служби. Врахуйте, що вона не буде
створює службу, для створення служби є
CreateService, а відкриває вже створену раніше
службу.

SC_HANDLE OpenService (SC_HANDLE hSCManager, LPCTSTR
lpServiceName, DWORD dwDesiredAccess);

SC_HANDLE hSCManager - покажчик, повернутий
функцією OpenSCManager.

LPCTSTR lpServiceName - ім'я відкривається сервісу.

DWORD dwDesiredAccess- права з якими ми можемо
відкрити службу. Ось деякі з них:

SERVICE_ALL_ACCESS- це стандартні права доступу.
SERVICE_START-дозволяє запуск роботи сервісу.
SERVICE_STOP-дозволяє зупинку роботи сервісу.

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

Ця функція потрібна для створення сервісу (служби).

SC_HANDLE CreateService (SC_HANDLE hSCManager, LPCTSTR
lpServiceName, LPCTSTR lpDisplayName, DWORD dwDesiredAccess, DWORD dwServiceType,
DWORD dwStartType, DWORD dwErrorControl, LPCTSTR lpBinaryPathName, LPCTSTR
lpLoadOrderGroup, LPDWORD lpdwTagId, LPCTSTR lpDependencies, LPCTSTR
lpServiceStartName, LPCTSTR lpPassword);

Перший параметр (hSCManager) вказує на
покажчик, повернутий функцією OpenSCManager.
Наступні два параметри вказують на
рядки, що містять ім'я створюваної служби та
ім'я, яке буде використано
призначеним для користувача інтерфейсом. наступний
параметр містить в собі прапори,
що визначають права доступу до служби. тут
використовуються ті ж прапори, що і в функції
OpenService. У більшості випадків знадобиться
установка цього прапора в SERVICE_ALL_ACCESS. параметр
dwServiceType визначає тип створюваного
сервісу. В даному випадку потрібно встановити
його в SERVICE_KERNEL_DRIVER, що в свою чергу
означає, що сервіс буде керувати
драйвером рівня ядра. Інші ж значення
означають, що це буде драйвер файлової
системи і т.д. Параметр dwStartType дуже важливий, тому що
визначає спосіб старту служби. В нашому
І тут його треба встановити в
SERVICE_BOOT_START або SERVICE_AUTO_START, що означає
практично одне і теж - запуск служби у
час запуску самої операційної системи.
Параметр dwErrorControl вказує на спосіб
обробки виникають помилок, в нашому
І тут його треба встановити в SERVICE_ERROR_NORMAL.
Наступний параметр - lpBinaryPathName - покажчик на
завершується нулем рядок, що вказує на
повний шлях до драйвера (в нашому випадку
руткітів), яким управлятиме служба.
Наступні пать параметрів слід
встановити в NULL, тому що вони не важливі в даному
випадку.

Для запуску служби існує функція
StartService.

BOOL StartService (SC_HANDLE hService, DWORD
dwNumServiceArgs, LPCTSTR * lpServiceArgVectors);

SC_HANDLE hService - покажчик служби, повернутий
функцією CreateService або OpenService. параметр
dwNumServiceArgs містить в собі число параметрів,
зазначених в масиві lpServiceArgVectors. В цьому
масиві вказуються параметри, які
будуть передані службі. Врахуйте, що сервіси
драйверів не використовують цей параметр,
тому два останніх параметра в нашому
випадку потрібно встановити в NULL. якщо функція
виконалася успішно, то вона повертає
нульове значення. Функції для зупинки
служби немає, але її можна легко написати з
використанням функції ControlService:

BOOL ControlService (SC_HANDLE hService, DWORD dwControl,
LPSERVICE_STATUS lpServiceStatus);

Параметр dwControl містить прапори, за допомогою
яких ви задаєте, що потрібно зробити з
службою. Якщо вам потрібно зупинити роботу
служби, то можете встановити її в
SERVICE_CONTROL_STOP. За допомогою цієї функції можна і
більш зручно зупиняти і запускати
службу. Наприклад, щоб призупинити роботи сервісу,
встановіть параметр dwControl в SERVICE_CONTROL_PAUSE, а
для продовження роботи в SERVICE_CONTROL_CONTINUE.
Параметр lpServiceStatus - покажчик на структуру
SERVICE_STATUS, куди заноситься поточний статус
служби. Встановіть його в NULL, якщо вам не
важливий поточний статус роботи служби. ця
функція повертає нульове значення при
успішне виконання.

Я перерахував всі необхідні функції для
завантаження руткітів (драйверів) .Для закриття
структури DT SCM використовуйте функцію
CloseServiceHandle. Вона приймає єдиний
параметр - DT SCM, тобто опис, повернутий
функцією OpenSCManager.

Всіх цих функцій цілком достатньо для
завантаження і виконання руткітів. нижче я
приведу приклад використання цих функцій.

#define rootkitname "myrootkit" //
задаємо ім'я нашого руткита

BOOL StopRootkit (SC_HANDLE hService) //
оголошуємо
функції зупинки і старту роботи служби

BOOL StartRootkit (SC_HANDLE hService) //
int main ()
{
SC_HANDLE hManager, hService; //
описатели
SCM бази і служби

LPVTSTR rootkpath \u003d "C: \\ myrootkit.sys"; //

повний шлях до нашого руткіта

hManager \u003d OpenSCManager (NULL, NULL, SC_MANAGER_ALL_ACCESS); //
створюємо
зв'язок з БД SCM

if (hManager) // якщо все в порядку
{

hService \u003d CreateService (hManager, rootkitname, rootkitname, SERVICE_ALL_ACCESS,
SERVICE_KERNEL_DRIVER, SERVICE_BOOT_START, SERVICE_ERROR_NORMAL, \\ rootkpath,
NULL, NULL, NULL, NULL, NULL, NULL); // створюємо
службу, що управляє нашим руткітом

if (hService) // все в порядку?
{
StartService (hService, NULL, NULL); //
запускаємо
створену службу, тим самим запускаючи наш
руткит

}

if (StopRootkit (hService)) // якщо
зупинка пройшла успішно,

{
StartRootkit (hService); //
то заново
запускаємо її

};
CloseServiceHandle (hManager); //
закриваємо
DT SCM (БД SCM).

}
BOOL StopRootkit (SC_HANDLE hService)
{
BOOL ok \u003d true;
if (hService)
{
ok \u003d ControlService (hService, SERVICE_CONROL_STOP, NULL); //
викликаємо
функцію ControlService з прапором SERVCE_CONTROL_STOP, тим

if (! ok) // самим зупиняючи
роботу сервісу

{
ok \u003d false;
};
};
return ok;
}

BOOL StartRootkit (SC_HANDLE hService)
{
BOOL ok \u003d true;
if (hService)
{
ok \u003d ControlService (hService, SERVICE_CONTROL_START, NULL); // викликаємо
функцію ControlService з прапором SERVCE_CONTROL_START, тим

if (! ok) // з амим запускаючи службу
{
ok \u003d false;
};
};
return ok;
}

Цей приклад просто демонструє те, про що я
писав вище. Ви можете додати
додаткові перевірки для
запобігання можливих помилок.

Раджу вам прочитати в книзі Свена
Шрайбера ( "Недокументовані
можливості Windows 2000 ") розділ, присвячений
програмування драйверів. також
рекомендую цикл статей від Four-F, присвячений
створення драйверів в Windows NT. подивіться
статтю від Ms-Rem, "Перехоплення API функцій в Windows NT
(Частина 3) .Нулевое кільце ". І не проходите
повз rootkit.com.

Порядок завантаження драйверів і сервісів в Windows



Тим, кому цікаво внутрішнє устойство операційної системи Windows, пропоную невелике дослідження. Ми спробуємо з'ясувати, що відповідає за порядок завантаження драйверів і сервісів в Windows і чи можна цей порядок змінити.

Перш за все подивимося поточний порядок запуску системи за допомогою програми LoadOrder від Sysinternals. Програма покаже нам, що і в якому порядку завантажується при запуску операційної системи.

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

драйвери

В якості піддослідного візьмемо драйвер Microsoft ACPI (Advanced Configuration and Power Interface), який відповідає за виявлення апаратного забезпечення і управління живленням. Завдання ACPI - забезпечити взаємодію між операційною системою і апаратним забезпеченням, тому драйвер ACPI завантажується на самому початку.

Програма Loadorder надає досить обмежену інформацію про порядок завантаження, тому за більш точними даними йдемо до реєстру. У кожного драйвера і Windows-сервісу є свій розділ в галузі реєстру HKLM \\ SYSTEM \\ CurrentControlSet \\ Services. Названі розділи по імені драйвера \\ сервісу, відповідно нам потрібен розділ ACPI.

За порядок завантаження драйвера відповідають три параметра реєстру. основний параметр Start - визначає тип запуску драйвера. Ось правила, за якими драйвери встановлюють значення свого параметра Start:

Драйвери, які повинні завантажуватися системним завантажувачем при запуску операційної системи, Вказують значення Start рівне 0 (запуск при завантаженні системи ). Приклад - драйвери системних шин і драйвер файлової системи, що використовується при завантаженні системи;
Драйвер, який не потрібно безпосередньо для завантаження системи, Вказує в Start значення, рівне 1 (запуск системою ). Приклад - стандартний драйвер відеокарти (VgaSave);
драйвер, не обов'язково для завантаження системи, Встановлює значення Start рівним 2 (автозапуск). Приклад - драйвер багатомережевий UNC-npoвайдера (Multiple UNC Provider, MUP), що підтримує UNC-імена віддалених ресурсів (типу);
драйвери, необов'язкові для роботи операційної системи (Наприклад, драйвери мережевих адаптерів), вказують значення Start рівним 3 (запуск на вимогу ).

Також драйвери пристроїв можуть використовувати параметри Group і Tag для контролю порядку своєї завантаження при запуску системи. Параметр Group драйвери \\ сервіси використовують, щоб вказати групу, до якої вони належать, а порядок завантаження груп визначається параметром List, Що знаходяться в розділі HKLM \\ SYSTEM \\ CurrentControlSet \\ Control \\ ServiceGroupOrder \\.

До речі, параметр Group вказувати не обов'язково. Якщо драйвер \\ сервіс не входить в якусь групу, то він завантажується в самому кінці черги.

Драйвер може ще більше деталізувати порядок своєї завантаження за допомогою параметра Tag, який вказує конкретну позицію драйвера в групі. Диспетчер введення-виведення сортує драйвери в групі за значеннями цього параметра, а драйвери, які не мають параметра Tag, переміщаються в кінець списку драйверів групи.

Подивившись на порядок завантаження, можна подумати що спочатку завантажуються драйвери з меншими значеннями Tag, потім - з великими, але це не зовсім так. Пріоритет значень параметрів Tag в рамках групи визначається в розділі HKLM \\ SYSTEM \\ CurrentControlSet \\ Control \\ GroupOrderList.

Для прикладу відкриємо двійковий параметр Boot Bus Extender, який відповідає однойменній групі, до якої належить і драйвер ACPI. Параметр вдає із себе набір подвійних слів (по 4 байта кожне). Перше слово (виділено червоним) задає загальну довжину змінної (кількість подвійних слів), в нашому прикладі 06. Решта подвійні слова як раз і є тегами. Драйверу ACPI відповідає тег, який дорівнює 01 (виділено зеленим).

Пріоритетність тега визначається не значенням тега, а його становищем: чим вище розташований тег, тим вище його пріоритет в групі, і тим вище пріоритет драйвера, якому цей тег відповідає. А оскільки 01 вище за інших тегів, то і драйвер ACPI завантажується першим в групі.

сервіси

Порядок завантаження Windows-сервісів дещо відрізняється від порядку завантаження драйверів. Як приклад візьмемо сервіс Автоматичне оновлення (wuauserv). Він не особливо критичний для роботи системи і тому вантажиться в останню чергу.

Знову йдемо до реєстру. Параметри запуску сервісу знаходяться в розділі HKLM \\ SYSTEM \\ CurrentControlSet \\ Services \\ wuauserv. Я виділив два основних параметри, що відповідають за порядок завантаження даного сервісу.

Windows-сервіси запускаються диспетчером управління сервісами (Service Control Manager, SCM) у відповідності зі значенням параметра Start. Параметр цей для сервісів може набувати таких значень:

Авто запуск (2) - сервіс запускається автоматично, відразу після запуску основного SCM-процесу Services.exe;
Запуск на вимогу (3) - сервіс запускається при необхідності, на вимогу будь-якого сервісу або програми;
Відключено (4) - сервіс відключений і не запускається ні за яких умов.

Значення 0 (запуск при завантаженні системи) і 1 (запуск системою) для сервісів не можуть бути вказані, тільки для драйверів пристроїв.

Крім того, починаючи з Windows Vista \\ Server 2008 для сервісів з'явився ще один режим запуску - відкладений автозапуск. Відповідає за нього параметр DelayedAutoStart \u003d 1, Який який вказує SCM зробити автоматичний старт даного сервісу з затримкою. SCM запускає служби, для яких вибраний відкладений запуск, після завантаження сервісів, зазначених для автозапуску.

Режимом запуску сервісів можна управляти не тільки з реєстру, а й в графічному режимі, з консолі Служби (Services).

Так само як і драйвери, Windows-сервіси можуть використовувати параметр Group в своєму розділі реєстру, щоб вказати групу, до якої вони належать. Зараз, для наочності, візьмемо наш сервіс wuauserv, що знаходиться в самому кінці списку завантаження. За допомогою ключа Group помістимо його в групу Event Log, перезавантажити і подивимося порядок завантаження в Loadorder. Як бачите, порядок змінився і wuauserv піднявся з останнього місця, завантажившись відразу після свого одногрупника - служби eventlog. Правда порядок розміщення всередині групи змінити вже не вийде, тому що Tag для сервісів не використовується.

І ще один параметр, який побічно впливає на порядок завантаження сервісів - DependOnService. Він вказує, від яких сервісів залежить даний сервіс. Відповідно сервіс не завантажується, поки не будуть завантажені сервіси, перераховані в DependOnService.

Залежно працюють таким чином - якщо сервіси знаходяться в одній групі, то залежний сервіс переміщається в кінець списку і запускається після сервісів, від яких залежить. Якщо ж групи різні, то сервіс просто не запуститься, а SCM видасть помилку.

Більш наочно це показано в оснащенні Служби, де на вкладці Залежності (Dependency) вказані як сервіси, від яких залежить даний сервіс, так і сервіси, які залежать від нього.

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

THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму