Пакеты драйверов устройств

Пакеты драйверов можно добавить в образ Windows до, во время или после развертывания образа. При планировании добавления пакетов драйверов в развертывание Windows важно понимать, как пакеты драйверов добавляются в образ, как ранжирование драйверов влияет на развертывание, а также требования к цифровой подписи для пакетов драйверов.

Добавление пакетов драйверов

Пакеты драйверов можно добавить в образ Windows:

Дополнительные сведения см. в разделе "Основные сведения о стратегиях обслуживания".

Добавление пакетов драйверов перед развертыванием в автономном образе Windows с помощью DISM

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

При добавлении пакета драйвера в автономный образ он либо размещен, либо отображается на изображении:

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

  • Пакеты драйверов, которые не являются критически важными для загрузки , размещаются. Другими словами, они добавляются в хранилище драйверов. После запуска Windows PnP обнаруживает устройство и устанавливает соответствующий пакет драйверов из Магазина драйверов.

Команды DISM можно использовать для добавления или удаления пакетов драйверов на подключенном или примененном образе windows или предустановки Windows (Windows PE).

Примечание

Нельзя использовать DISM для удаления пакетов драйверов папки "Входящие" (пакетов драйверов, установленных в Windows по умолчанию), за исключением некоторых сетевых драйверов. Его можно использовать только для удаления сторонних или встроенных пакетов драйверов.

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

Дополнительные сведения см. в статье "Добавление и удаление драйверов в автономный образ Windows".

Если вы используете DISM, вы можете добавить только пакеты драйверов INF в автономный образ Windows. Пакеты драйверов, отображающие логотип Windows, предоставляются в виде .cab файлов. Перед установкой INF-файла необходимо развернуть файл .cab. Необходимо установить пакет драйверов, упакованный в виде файла .exe или другого типа файла в работающей операционной системе Windows. Чтобы запустить пакет драйвера .exe или установщика Windows (.msi), можно добавить пользовательскую команду в файл ответов для установки пакета драйверов. Дополнительные сведения см. в разделе "Добавление пользовательской команды в файл ответов".

Добавление пакетов драйверов во время автоматического развертывания с помощью программы установки Windows и файла ответов

Вы можете использовать файл автоматического ответа для добавления пакетов драйверов в образ при использовании программы установки Windows для развертывания. В этом файле ответов можно указать путь к пакету драйверов в сетевой папке (или локальном пути). Для этого добавьте компоненты Microsoft-Windows-PnpCustomizationWinPE или Microsoft-Windows-PnpCustomizationNonWinPE и укажите конфигурацию, в которую требуется установить их. При запуске программы установки Windows и указании имени файла ответов, готовые пакеты драйверов размещаются (добавляются в хранилище драйверов на образе), а пакеты драйверов, критически важные для загрузки, отражаются (добавляются в образ, чтобы они использовались при загрузке компьютера). Программа установки использует файл ответов. Добавляя пакеты драйверов во время передачи конфигурации windowsPE или offlineServicing , можно добавить встроенные пакеты драйверов в образ Windows до запуска компьютера. Этот метод также можно использовать для добавления пакетов драйверов, критически важных для загрузки, в образ Windows. Дополнительные сведения см. в разделе "Добавление драйверов устройств в Windows во время установки Windows". Дополнительные сведения о работе программы установки Windows см. в техническом справочнике по установке Windows.

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

Ниже приведены методы добавления пакетов драйверов с помощью программы установки Windows:

  • Использование файла ответов для добавления пакетов драйверов во время передачи конфигурации offlineServicing программы установки.
  • Использование файла ответов для добавления пакетов драйверов во время передачи конфигурации WindowsPE программы установки.
  • Для Windows Server размещение пакетов драйверов в каталоге $WinPEDriver$ устанавливается автоматически во время передачи конфигурации WindowsPE программы установки. Все буквы диска со значением C или более поздней версии проверяются для каталога $WinPEDriver$. Диск должен быть доступен для жесткого диска во время установки. Убедитесь, что для доступа к диску не требуется загрузить драйвер хранилища.

Дополнительные сведения об этих и других передачах конфигурации см. в разделе " Передача конфигурации программы установки Windows".

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

Добавление пакетов драйверов после развертывания в работающей операционной системе с помощью PnPUtil или файла ответов

Средство PnPUtil можно использовать для добавления или удаления пакетов драйверов в работающей операционной системе. Кроме того, можно использовать файл ответов для автоматизации установки пакетов драйверов при загрузке компьютера в режиме аудита. Эти методы могут быть полезны, если вы хотите сохранить простой образ Windows, а затем добавить только пакеты драйверов, необходимые для определенной конфигурации оборудования. Дополнительные сведения об использовании режима аудита см. в разделе "Загрузка Windows в режим аудита" или "OOBE".

Ниже приведены методы добавления пакетов драйверов в режим "в сети" в работающей операционной системе:

Пакеты драйверов для S-режима

Пакеты драйверов в режиме Windows S должны соответствовать определенным требованиям. Ознакомьтесь с требованиями к драйверу Windows 10 S , чтобы узнать о типах пакетов драйверов, которые можно добавить в Windows в режиме S.

Управление папками драйверов

При добавлении нескольких пакетов драйверов необходимо создать отдельные папки в исходном расположении для каждого пакета драйверов или категории пакетов драйверов. Это гарантирует отсутствие конфликтов при добавлении пакетов драйверов с одинаковым именем файла. После установки пакета драйвера в операционной системе он переименован в Oem*.inf, чтобы обеспечить уникальные имена файлов в операционной системе. Например, промежуточные драйверы с именем MyDriver1.inf и MyDriver2.inf можно переименовать в Oem0.inf и Oem1.inf после их установки.

При указании пути драйвера устройства в файле ответов все пакеты драйверов INF в указанном каталоге и подкаталогах добавляются в хранилище драйверов образа Windows. Например, если вы хотите, чтобы все пакеты драйверов в папке C:\MyDrivers\Networking, C:\MyDrivers\Video и C:\MyDrivers\Audio каталоги были доступны в образе Windows, укажите путь драйвера устройства C:\MyDrivers в файле ответов. Если вы не используете файл ответов, можно использовать команду /recurse в DISM. Дополнительные сведения о команде /recurse см. в разделе "Обслуживание драйвера DISM" Command-Line "Параметры". Эта команда гарантирует, что все пакеты драйверов в каждом подкаталоге будут добавлены в хранилище драйверов в образе Windows.

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

Общие сведения о ранжировании драйверов

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

Диспетчер Windows PnP ранжирует эти свойства пакета драйверов в порядке важности:

  1. Сертификат для подписи маркера
  2. Соответствие идентификатора PnP
  3. Дата драйвера
  4. Версия драйвера

Например, если пакет драйвера имеет лучшее соответствие идентификатора PnP, но не подписан, подписанный пакет драйвера с совместимым идентификатором имеет приоритет. Более старый пакет драйверов может перенаправить более новый пакет драйверов, если старый пакет драйверов имеет лучшее соответствие идентификатора PnP или сигнатуру.

Дополнительные сведения о ранжировании пакетов драйверов см. в разделе "Как Windows Ранжирует драйверы".

Основные сведения о требованиях к цифровой подписи

Подписанные пакеты драйверов — это ключевая функция безопасности в Windows. Пакеты драйверов, установленные на компьютерах с архитектурой x64, должны иметь цифровую подпись. Хотя это не обязательно, рекомендуется убедиться, что пакеты драйверов подписаны перед установкой на компьютерах с архитектурой x86.

Все двоичные файлы драйвера, критически важные для загрузки, должны содержать внедренные сигнатуры. Например, режим ядра .sys файлы, критически важные для доступа к загрузочному диску.

Двоичный файл драйвера может быть подписан двумя способами:

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

  • Пакеты драйверов PnP с цифровой подписью содержат файл каталога (CAT), подписанный цифровой подписью. Файл каталога содержит хэш всех файлов в INF-файле пакета драйверов для установки. Подписанный файл каталога — это все, что необходимо для правильной установки большинства пакетов драйверов PnP.

Любой из этих источников может подписать пакеты драйверов:

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

  • Центр сертификации (ЦС) с помощью сертификата публикации программного обеспечения (SPC). Для двоичных файлов драйвера ядра, критически важных для загрузки и x64, корпорация Майкрософт предоставляет дополнительный сертификат, который можно использовать для перекрестной подписи двоичных файлов драйвера. Двоичные файлы драйверов, которые не являются критически важными для загрузки, не обязательно должны быть подписаны корпорацией Майкрософт или внедренными. Процесс подписывания кода в режиме ядра Windows можно использовать, если вам нужна гибкость подписывания двоичных файлов драйвера самостоятельно. Сведения о цифровых подписях для модулей ядра в системах на основе x64 см. в руководстве по 64-разрядным драйверам.

Для тестирования также можно использовать тестовые сертификаты.

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

Ниже приведены основные способы создания таких сертификатов подписи тестов:

  • Разработчики могут создавать собственные самозаверяющие сертификаты.
  • ЦС может выдавать сертификаты.

Для любого варианта сертификаты для подписывания тестов должны быть четко определены как соответствующие только для тестирования. Например, слово "test" может быть включено в имя субъекта сертификата, а дополнительные юридические отказы могут быть включены в сертификат. Производственные сертификаты, выданные коммерческими центрами сертификации, должны быть зарезервированы только для подписывания только общедоступных бета-выпусков и общедоступных окончательных выпусков программного обеспечения и внутреннего бизнес-программного обеспечения.

Дополнительные сведения см. в разделе "Требования для подписывания и промежуточного хранения драйверов устройств".

При добавлении пакетов драйверов, подписанных тестом, в Windows учитывайте следующие моменты:

  • Необходимо установить тестовые сертификаты в работающей операционной системе. Их невозможно установить в автономном режиме.

  • Сертификат ЦС, выдавшего тестовый сертификат, должен быть вставлен в хранилище сертификатов доверенных корневых центров сертификации.

    [примечание] Если тестовый сертификат самозаверяется (например, с помощью средства создания сертификатов (MakeCert)), тестовый сертификат необходимо вставить в хранилище сертификатов доверенных корневых центров сертификации.

  • Тестовый сертификат, используемый для подписи пакета драйвера, должен быть вставлен в хранилище сертификатов доверенных издателей.

  • Чтобы использовать программу командной строки "Обслуживание образов развертывания" (DISM), необходимо добавить тестовые сертификаты (в загрузочный экземпляр образа Windows) для добавления пакетов драйверов, подписанных тестом, в автономном режиме.

  • DISM проверяет сертификаты WHQL только для пакетов драйверов, критически важных для загрузки. Но параметр командной строки DISM может переопределить это поведение. Дополнительные сведения см. в разделе " Параметры обслуживания драйверов DISM" Command-Line.

  • Чтобы установить и проверить пакеты драйверов, подписанных тестом, в 64-разрядных операционных системах настройте конфигурацию загрузки Windows в тестовом режиме с помощью средства BCDedit на конечном компьютере. Тестовый режим проверяет, подписан ли образ драйвера, но проверка пути к сертификату не требует настройки издателя в качестве доверенного корневого центра. Чтобы логика установки и ранжирования драйверов PnP правильно обрабатывала пакет драйверов, тестовый сертификат должен храниться в доверенном хранилище сертификатов образа операционной системы. Сведения о тестовом режиме во время разработки см. в 64-разрядных руководствах по драйверам.

Внимание!

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

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

Дополнительные ресурсы

Эти веб-сайты предоставляют дополнительные сведения о требованиях к пакетам драйверов:

Добавление пути драйвера устройства в файл ответов

Добавление драйвера в режиме аудита

Параметры обслуживания драйверов DISM Command-Line

Добавление и удаление драйверов в автономный образ Windows

Добавление драйверов устройств в Windows во время установки Windows

Обслуживание конфигураций драйверов при захвате образа Windows

Параметры Command-Line BCDboot

Устранение неполадок развертывания и файлы журналов