Автоматическая установка драйверов::Журнал СА 1.2009
www.samag.ru
     
Поиск  
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Сетевой агент
О журнале
Журнал «БИТ»
Информация для ВАК
Звезды «СА»
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Форум
Вакансии
Спроси юриста
Игры
Контакты
   
Слайд шоу  
Представляем работы Виктора Чумачева
Виктор Чумачев – известный московский художник, который сотрудничает с «Системным администратором» уже несколько лет. Именно его забавные и воздушные, как ИТ, иллюстрации украшают многие серьезные статьи в журнале. Работы Виктора Чумачева хорошо знакомы читателям в России («Комсомольская правда», «Известия», «Московские новости», Коммерсант и др.) и за рубежом (США, Германия). Каждый раз, получая новый рисунок Виктора, мы в редакции улыбаемся. А улыбка, как известно, смягчает душу. Поэтому смотрите на его рисунки – и пусть у вас будет хорошее настроение!
1001 и 1 книга  
29.10.2018г.
Просмотров: 234
Комментарии: 0
Информатика. Учебник, 4-е издание, цветное, переработанное и дополненное

 Читать далее...

20.09.2018г.
Просмотров: 524
Комментарии: 0
Байесовские модели

 Читать далее...

20.09.2018г.
Просмотров: 395
Комментарии: 0
Элегантный SciPy

 Читать далее...

20.09.2018г.
Просмотров: 467
Комментарии: 0
Олимпиадное программирование

 Читать далее...

20.09.2018г.
Просмотров: 418
Комментарии: 0
Akka в действии

 Читать далее...

Дискуссии  
17.09.2014г.
Просмотров: 19576
Комментарии: 3
Красть или не красть? О пиратском ПО как о российском феномене

Тема контрафактного ПО и защиты авторских прав сегодня актуальна как никогда. Мы представляем ...

 Читать далее...

03.03.2014г.
Просмотров: 21845
Комментарии: 1
Жизнь под дамокловым мечом

Политические события как катализатор возникновения уязвимости Законодательная инициатива Государственной Думы и силовых структур, ...

 Читать далее...

23.01.2014г.
Просмотров: 30431
Комментарии: 3
ИТ-специалист будущего. Кто он?

Так уж устроен человек, что взгляд его обращен чаще всего в Будущее, ...

 Читать далее...


  Опросы

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

 Автоматическая установка драйверов

Архив номеров / 2009 / Выпуск №1 (74) / Автоматическая установка драйверов

Рубрика: Администрирование /  Продукты и решения

Иван Коробко ИВАН КОРОБКО

Автоматическая установка драйверов

Решить задачу пакетной установки драйверов можно разными способами. Среди них наиболее распространенный – интеграция в дистрибутив операционной системы, однако он не единственный. Поговорим о малоизвестных способах пакетной установки драйверов.

В крупных организациях парк компьютеров, как правило, унифицирован. Однако он постоянно обновляется. Самый распространенный из них – интеграция пакета драйверов в дистрибутив операционной системы. Существует еще несколько альтернативных способов, которым стоит уделить внимание: установка пакета драйверов с помощью командного файла и с помощью Driver Package Installer.

Довольно часто возникает ситуация, когда необходимо предустановить пакет драйверов. В целях безопасности большинство сотрудников в сети не обладают административными правами и не могут устанавливать устройства. По этой причине они не могут подключить без помощи администратора различные внешние устройства с интерфейсом USB, Fire Ware и т. д.

Для решения этой проблемы необходимо инсталлировать часто используемые драйверы на всех компьютерах на этапе разворачивания программного обеспечения.

Для обеспечения автоматической пакетной установки драйверов можно использовать либо командный файл, либо Driver Package Installer (DPInst). Рассмотрим подробнее два способа.

Командный файл

Алгоритм установки драйверов устройств описан в INF-файле. В нем находится информация о том, какие библиотеки и куда необходимо скопировать, какие изменения сделать в реестре и т. д.

В Windows используется два интерпретатора INF-файлов: SETUPAPI и ADVANCEDINF, которые представляют собой два DLL-файла, располагающихся в каталоге %SystemRoot%/System32.

Интерпретатор SETUPAPI находится в библиотечном файле setupapi.dll, интерпретатор ADVANCEDINF – в библиотечном файле advpack.dll. Основным интерпретатором является SETUPAPI. Для получения доступа к интерпретаторам используется запускаемый файл RUNDLL32.EXE. Формат запуска любой библиотеки следующий:

rundll32.exe DLL,Function Рarameters

где:

  • DLL – имя файла библиотеки. В данном случае setupapi.dll или advpack.dll.
  • Function – функция, вызываемая из библиотеки, или, как ее еще называют, точка входа. Обратите внимание: название файла и вызываемой функции разделены запятой без пробелов.
  • Parameters – параметры, передаваемые функции.

Интерпретатор SETUPAPI

Интерпретатор SETUPAPI позволяет:

  • управлять реестром: создание и удаление ключей, параметров и их значений;
  • распаковывать CAB-файлы;
  • управлять файлами и папками, их атрибутами;
  • устанавливать и удалять драйверы устройств.

Для запуска процесса установки драйверов используется функция InstallHinfSection, для удаления – соответственно unInstallHinfSection. В листинге 1 приведен пример установки драйверов, описанных в файле HP_1200.INF.

Листинг 1. Установка драйверов с помощью интерпретатора SETUPAPI

rundll32.exe setupapi,InstallHinfSection HP_1200_PPD 132 C:\HP_1200.INF

Функция InstallHinfSection имеет три параметра. Первый из них – имя выполняемой секции INF-файла, второй – флаг обработки файла. В таблице приведены возможные значения флага. Третий параметр – непосредственно имя INF-файла.

Интерпретатор ADVANCEDINF

По своей сути интерпретатор ADVANCEDINF является надстройкой над SETUPAPI, позволяющей выполнять дополнительно следующие функции:

  • однократное выполнение доустановки после входа в систему при инсталляции и деинсталляции (Active Setup);
  • предварительная запись изменяемых ключей реестра в бинарный файл (функция отката);
  • запуск исполняемых файлов с параметрами в скрытом и нормальном режимах;
  • вывод диалоговых окон.

Стандартные функции ADVANCEDINF передает на исполнение интерпретатору SETUPAPI.

Листинг 2. Установка драйверов с помощью интерпретатора SETUPAPI

rundll32.exe advpack,LaunchINFSection C:\HP_1200.INF HP_1200_PPD 132

Вывод

Бесспорным преимуществом является интегрированность обоих интерпретаторов, используемых в командных файлах, в операционную систему, однако при этом необходимо точно указывать местонахождение драйвера и секцию INF-файла, служащую его точкой входа. Для этого администратор должен разбираться в синтаксисе.

Возможные флаговые значения обработки файлов

Значение Описание
0 или 128 Не перезагружать компьютер
1 или 129 Перезагрузка компьютера без запроса
2 или 130 Спросить у пользователя: перезагрузить компьютер или нет
3 или 131 В случае необходимости перезагружать компьютер без запроса
4 или 132 В случае необходимости спросить у пользователя: перезагружать компьютер или нет

Driver Package Installer

Driver Package Installer (DPInst) – компонент, разработанный компанией Microsoft, входящий в состав пакета Microsoft Windows Driver Install Frameworks (DIF). В настоящее время используется DIF v 2.1. DPInst обладает возможностями:

  • Установка Plug and Play (PnP) драйверов. По умолчанию устанавливаются все подписанные PnP-драйверы, находящиеся в каталоге с файлом dpinst.exe. Для отключения проверки используется ключ /LM.
  • Пакетная установка драйверов с помощью файла dpinst.xml. Описание структуры XML-файла см. далее.
  • Поддержка «тихого» режима установки. Для включения режима используется ключ /S или /Q.
  • Поддержка многоязычного интерфейса установщика драйверов.
  • Ведение журнала установки.
  • Деинсталляция драйверов.

Из перечисленных возможностей видно, что с помощью DPInst можно реализовать автоматическую установку группы драйверов в «тихом» режиме. По умолчанию DPInst устанавливает в системе все драйверы, INF-файлы которых находятся в одном каталоге с этой утилитой, однако устраивать помойку из драйверов по меньшей мере некорректно. Для решения этой проблемы используется DPInst.XML, находящийся в одном каталоге с DPInst.EXE. Он представляет собой обычный текстовый файл в формате XML. Единственное его отличие от других файлов – наличие стандартизированных тегов.

Установка пакета драйверов

Существует два способа пакетной установки: с помощью тега <group> и <search>. Принципиальная разница между этими способами заключается в том, что с помощью тега <group> реализована установка драйверов, местоположение которых точно указано. Используя тег <search>, можно установить все драйверы в указанной и ее дочерних папках. Рассмотрим подробнее оба способа.

Пакетная установка драйверов с помощью тега <group>

Для обеспечения установки пакета драйверов в файле DPInst.XML используется тег <group>, в котором может быть три типа дочерних тегов:

  • <package path = «…»/> – таких тегов может быть неограниченное количество. Значение параметра path – относительный или абсолютный путь к INF-файлу драйвера.
  • <installAllOrNone/> – в случае ошибки установки одного из драйверов осуществляется деинсталляция всех драйверов данного пакета. Этот тег по действию аналогичен ключу /A утилиты DPInst.exe.
  • <suppressAddRemovePrograms/> – при наличии этого параметра мастером установки не будет создаваться соответствующая запись для каждого драйвера в папке «Установка и удаление программ», находящейся в «Панели управления» (см. рисунок). Этот тэг по действию аналогичен ключу /SA утилиты DPInst.exe.

Регистрация драйвера в «Установка и удаление программ»

Регистрация драйвера в «Установка и удаление программ»

Для автоматической установки пакета драйверов, состоящего из трех драйверов, находящихся в папках C:\hp1200\1200.inf, C:\hp3380\3380.inf, C:\hp4100\4100.inf, рекомендуется использовать XML-файл, приведенный в листинге 3.

Листинг 3. XML-файл, для автоматической установки

<?xml version="1.0" ?>

<dpinst>

<group>

<package path="c:\hp1200\1200.inf " />

<package path="c:\hp3380\3380.inf " />

<package path="c:\hp4100\4100.inf " />

<group/>

</dpinst>

Для обеспечения автоматической установки рекомендуется для запуска утилиты DPInst.exe использовать два ключа, включающих тихий режим установки (/S) и позволяющих устанавливать неподписанные драйверы (/LM):

DPInst .exe / S /LM

Пакетная установка драйверов с помощью тега <search>

Для пакетной установки драйверов на практике используется более быстрый способ, реализованный с помощью тега <search>. Его преимущество, которое в определенной ситуации является серьезным недостатком, – инсталляция всех найденных драйверов в указанном месте (листинг 4).

Листинг 4. Установка найденных драйверов в подпапках

<search>

<subDirectory>*</subDirectory>

</search>

Установка пакета драйверов с использованием интерфейса

Утилиты DPInst.exe поддерживает многоязычный интерфейс. Текст всех диалоговых окон, лицензионное соглашение и другая информация могут быть переведены разработчиком драйверов или администратором. Рассмотрим этот вопрос подробнее на примере создания русскоязычного интерфейса. Для описания интерфейса служит тэг <language>. С помощью параметра code задается кодовая страница, например, 0х0409 соответствует английскому языку, а 0х0419 – русскому (листинг 5).

Листинг 5. Шаблон файла DPInst.XML

<dpinst>

<language code="0х0419">

...

</language>

<group>

...

<group/>

</dpinst>

В тэге <language> могут быть приведены различные элементы, которые логически можно разделить на две группы. К первой группе отнесем те из них, которые управляют интерфейсом основного диалогового окна инсталлятора, ко второй – управляющие интерфейсом лицензионного соглашения. Поскольку перед системным администратором обычно стоит задача реализовать «тихую» установку, то ограничимся упоминанием о поддержке многоязычного интерфейса. Полное описание всех тегов находится в MSDN.

Вывод

Driver Package Installer имеет неоспоримые преимущества перед установкой драйверов с помощью командного файла благодаря реализованной возможности автоматического поиска драйверов в указанном месте. При этом за один заход можно установить в систему неограниченное количество драйверов.

Заключение

В заключение, хочется сказать несколько слов в защиту командных файлов. Достаточно часто встречаются ситуации, когда все способы перепробованы, но по тем или иным причинам достичь желаемого результата не удалось, тогда приходят на выручку такие способы, как установка драйверов с помощью командного файла.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru