NexxDigital - компьютеры и операционные системы

ИВАН КОРОБКО

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

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

В крупных организациях парк компьютеров, как правило, унифицирован. Однако он постоянно обновляется. Самый распространенный из них – интеграция пакета драйверов вдистрибутив операционной системы. Существует еще несколько альтернативных способов, которым стоит уделить внимание: установка пакета драйверов с помощью командного файла и с помощью 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-файла, служащую его точкой входа. Для этого администратор должен разбираться в синтаксисе.

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

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. Единственное его отличие от других файлов – наличие стандартизированных тегов.

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

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

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

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

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

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

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

DPInst .exe / S /LM

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

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

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

*

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

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

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

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

Вывод

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

Заключение

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


Вконтакте

Захотел я подружить свой телефон Sony Ericsson W995 и нетбук с Windows 7 Начальная. Но это оказалось не так просто.

Вначале всё шло, как обычно. Подключил телефон, он определился как CD-ROM с программным обеспечением и драйверами. Пошел по самому простому и рекомендуемому пути: установить приложение PC Companion. Программа успешно установилась. Но вот на шаге подключения телефона и установки драйверов к нему процесс забуксовал. Что-то шло явно не так, и телефон никак не определялся как телефон. Пробовал отсоединять и снова подключать, пробовал подключать к другому USB-порту. Ничего не помогало.

На CD-ROM"е, который появляется при подключении телефона, есть папка Drivers. В ней лежит два файла: DPinst.zip и Drivers.zip. Залез во вторую: там лежит несколько.inf файлов для установки драйверов. Распаковал ее и попробовал добавить устройства вручную. Выбор команды Установить из контекстного меню ни к чему хорошему не привел: в результате появилось сообщение, что этот файл не поддерживает такой способ установки. С помощью диспетчера устройств тоже не удалось ничего установить.

Залез и во второй zip-файл. Там находится две программы: DPInst.exe и DPInst64.exe. Описание обоих программ: Установщик пакетов драйверов . И оба файла имеют цифровую подпись Microsoft. Вторая из них является 64-битной, и поэтому не запустилась на 32-битной системе. Первая же программа выдавала сообщение об ошибке: Невозможно выполнить DPInst.exe на имеющейся операционной системе . Но нигде не было сказано, что программное обеспечение телефона не совместимо с Windows 7 Начальная. И судя по всему, автоматическая установка завершалась неудачно именно по этой причине.

Быстрый поиск в интернете привел на страницу с похожей проблемой . Контроль учетных записей не отключал, так как при запуске DPInst.exe запрашивалось повышение привилегий. А вот третий совет помог: запустил DPInst.exe в режиме совместимости с Windows Vista, и Мастер установки драйверов устройств запустился. Этот мастер скопировал все драйвера. (Содержимое обоих zip-архивов я распаковывал в одну папку.) Windows мгновенно нашла кучу новых устройств и начала устанавливать для них драйвера. Когда этот процесс завершился, телефон отобразился в окне Устройства и принтеры , а также в Проводнике. С экрана телефона исчез запрос о типе подключения.

До этого момента я уже дважды настраивал подключение телефона к компьютерам с Windows 7, и ни разу не возникло никаких проблем с установкой драйверов. Но в обоих случаях системы были 64-битными . И мне почему-то кажется, что в моем случае было важно то, что система была 32-битной, а не ее редакция: Начальная (или Starter) .


Иногда ошибки DPInst.exe и другие системные ошибки EXE могут быть связаны с проблемами в реестре Windows. Несколько программ может использовать файл DPInst.exe, но когда эти программы удалены или изменены, иногда остаются "осиротевшие" (ошибочные) записи реестра EXE.

В принципе, это означает, что в то время как фактическая путь к файлу мог быть изменен, его неправильное бывшее расположение до сих пор записано в реестре Windows. Когда Windows пытается найти файл по этой некорректной ссылке (на расположение файлов на вашем компьютере), может возникнуть ошибка DPInst.exe. Кроме того, заражение вредоносным ПО могло повредить записи реестра, связанные с Driver Package Installer (DPInst). Таким образом, эти поврежденные записи реестра EXE необходимо исправить, чтобы устранить проблему в корне.

Редактирование реестра Windows вручную с целью удаления содержащих ошибки ключей DPInst.exe не рекомендуется, если вы не являетесь специалистом по обслуживанию ПК. Ошибки, допущенные при редактировании реестра, могут привести к неработоспособности вашего ПК и нанести непоправимый ущерб вашей операционной системе. На самом деле, даже одна запятая, поставленная не в том месте, может воспрепятствовать загрузке компьютера!

В связи с подобным риском мы настоятельно рекомендуем использовать надежные инструменты очистки реестра, такие как %%product%% (разработанный Microsoft Gold Certified Partner), чтобы просканировать и исправить любые проблемы, связанные с DPInst.exe. Используя очистку реестра , вы сможете автоматизировать процесс поиска поврежденных записей реестра, ссылок на отсутствующие файлы (например, вызывающих ошибку DPInst.exe) и нерабочих ссылок внутри реестра. Перед каждым сканированием автоматически создается резервная копия, позволяющая отменить любые изменения одним кликом и защищающая вас от возможного повреждения компьютера. Самое приятное, что устранение ошибок реестра может резко повысить скорость и производительность системы.


Предупреждение: Если вы не являетесь опытным пользователем ПК, мы НЕ рекомендуем редактирование реестра Windows вручную. Некорректное использование Редактора реестра может привести к серьезным проблемам и потребовать переустановки Windows. Мы не гарантируем, что неполадки, являющиеся результатом неправильного использования Редактора реестра, могут быть устранены. Вы пользуетесь Редактором реестра на свой страх и риск.

Перед тем, как вручную восстанавливать реестр Windows, необходимо создать резервную копию, экспортировав часть реестра, связанную с DPInst.exe (например, Driver Package Installer (DPInst)):

  1. Нажмите на кнопку Начать .
  2. Введите "command " в строке поиска... ПОКА НЕ НАЖИМАЙТЕ ENTER !
  3. Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER .
  4. Будет выведено диалоговое окно для доступа.
  5. Нажмите Да .
  6. Черный ящик открывается мигающим курсором.
  7. Введите "regedit " и нажмите ENTER .
  8. В Редакторе реестра выберите ключ, связанный с DPInst.exe (например, Driver Package Installer (DPInst)), для которого требуется создать резервную копию.
  9. В меню Файл выберите Экспорт .
  10. В списке Сохранить в выберите папку, в которую вы хотите сохранить резервную копию ключа Driver Package Installer (DPInst).
  11. В поле Имя файла введите название файла резервной копии, например "Driver Package Installer (DPInst) резервная копия".
  12. Убедитесь, что в поле Диапазон экспорта выбрано значение Выбранная ветвь .
  13. Нажмите Сохранить .
  14. Файл будет сохранен с расширением.reg .
  15. Теперь у вас есть резервная копия записи реестра, связанной с DPInst.exe.

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

В процессе работы с компьютером каждый пользователь периодически сталкивается с разного рода ошибками, которые мешают выполнять те или иные задачи. Происходит это по разным причинам. Дело может быть в отсутствии или повреждении необходимых файлов , несовместимости версий, нарушении работы системы вредоносным ПО, в общем, причин существует множество. К счастью, большинство проблем в системе можно довольно быстро исправить. В этой статье подробно рассмотрим, как исправить ошибку «Невозможно выполнить DPInst.exe на имеющейся операционной системе». Давайте разбираться. Поехали!

Мы предлагаем вам комплексный подход к проблеме

Для начала разберёмся с тем, что же собой представляет сам файл DPInst.exe. Это исполняемый файл, который связан с DriverPackageInstaller, разработанным компанией Apple специально для Виндовс.

Здесь показан вариант сообщения на английском языке

С подобной проблемой сталкивалось немалое число пользователей. Эта ошибка возникала при запуске какой-нибудь программы. Причиной этой ошибки является несовместимость приложения, которое вы хотите запустить, и операционной системы компьютера. Обычно так случается, когда пользователи пытаются открыть старые программы на новых операционных системах. Также это может быть связано с повреждением ключей реестра . Происходит это либо в результате действия вредоносного программного обеспечения, либо из-за некорректных действий какой-нибудь утилиты на вашем компьютере.

Один из вариантов решения подобной проблемы - обновить программу или скачать более новую версию этого продукта. Если же такой возможности нет либо у вас возникла необходимость воспользоваться именно старой версией определённого приложения, то существует другой выход - настроить совместимость. Подробнее об этом вы узнаете далее в статье.

В Виндовс предусмотрен специальный режим - «Режим совместимости», который даёт пользователю возможность запускать приложения, которые были сделаны под более старые версии ОС Windows. Чтобы включить этот режим, щёлкните правой клавишей мыши по ярлыку программы, которую вы хотите запустить. В появившемся списке щёлкните по пункту «Свойства». Попав в окно свойств, зайдите на вкладку «Совместимость». Далее необходимо отметить птичкой пункт «Запустить программу в режиме совместимости с:» и выбрать соответствующую версию ОС Виндовс из списка. Также поставьте птичку в пункте запуска от имени администратора. После этого нажмите кнопки «ОК» и «Применить», чтобы изменения вступили в силу.

Выбирайте систему, наиболее близкую к вашей

Попробуйте выполнить приложение. Если вы снова получили ошибку «Невозможно выполнить DPInst.exe на имеющейся операционной системе», то снова зайдите в свойства и выберите другую операционную систему. С одной из них утилита точно должна заработать.

Воспользуйтесь одной из специальных утилит

Если характер неисправности другой, то следует выполнить полную проверку компьютера на наличие вирусного ПО. Также вы можете очистить компьютер от мусорных файлов системы, используя популярную утилиту CCleaner. Помимо этого, не помешает установить все необходимые обновления, поскольку иногда ошибка может быть вызвана именно устаревшими драйверами и компонентами системы. Чтобы выполнить обновление, откройте меню «Пуск» и пропишите в строке поиска «update», в открывшемся окне нажмите «Установить обновления ». После этого зайдите в «Панель управления» и откройте раздел «Установка и удаление программ». Отыщите в перечне установленных приложений DPInst и удалите его. Затем скачайте и инсталлируйте его повторно.

Ещё один вариант - выполнить сканирование системных файлов на предмет их целостности. Откройте поиск Windows и пропишите в нём (без кавычек) «command». Далее нажмите вместе клавиши Ctrl+Shift+Enter. Перед вами появится диалоговое окно, в котором понадобится нажать «Да». Затем пропишите команду sfc /scannow. После того как команда будет выполнена, вы увидите все повреждённые файлы, если таковые имеются. Их необходимо скачать и установить.

В очень редких случаях бывает так, что проблему не удаётся решить ни одним из перечисленных способов. Тогда вам придётся прибегнуть к восстановлению либо переустановке системы. В Windows есть возможность откатить систему до состояния определённой даты, когда была создана контрольная точка. Эти точки система создаёт самостоятельно. Если вы не отключали эту функцию, то можно ею воспользоваться. Крайняя мера - полная переустановка Windows. Она может понадобиться, если система была серьёзно повреждена. Помните, что при переустановке все данные, хранящиеся на ПК, будут утеряны. Поэтому обязательно позаботьтесь об их копировании на другой носитель. Это также касается отката и восстановления. Откатив систему до состояния недельной давности, вы потеряете все изменения и файлы, которые были внесены и загружены за весь этот период.



Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
NexxDigital - компьютеры и операционные системы