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

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

Чтобы сэкономить время во время установки и ускорить запуск при первом включении (OOBE) для конечных пользователей, можно поручить программе установки Windows поддерживать конфигурации драйверов на эталонном компьютере в составе образа Windows. Это следует делать, только если оборудование на эталонном компьютере и оборудование на конечных компьютерах идентичны. При этом программа установки Windows поддерживает конфигурации драйверов во время записи и развертывания образа.

Указание программе установки Windows поддерживать конфигурации драйверов

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

Обслуживание конфигураций драйверов с помощью файла ответов

  1. На компьютере технического специалиста откройте Диспетчер системных образов Windows (Windows SIM). Нажмите кнопку Пуск, введите диспетчер установки Windows, а затем выберите Диспетчер установки Windows.

  2. Создайте новый файл ответов или обновите существующий файл ответов. Дополнительные сведения см. в разделах Создание или открытие файла ответов и Рекомендации по созданию файлов ответов.

  3. Добавьте параметр Microsoft-Windows-PnpSysprep/PersistAllDeviceInstalls . Дополнительные сведения см. в разделе Обзор этой статьи.

  4. Если на компьютере есть неопределяемое оборудование, включите параметр Microsoft-Windows-PnpSysprep/DoNotCleanUpNonPresentDevices . Дополнительные сведения см. в разделе Undetectable hardware этой статьи.

  5. Обобщить компьютер с помощью файла ответов. Пример:

    Sysprep /generalize /unattend:C:\unattend.xml
    

Обзор

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

Чтобы подготовить образ Windows к развертыванию на нескольких компьютерах, необходимо использовать средство Подготовки системы (Sysprep) для обобщения образа Windows. При обобщающем образе Windows удаляются сведения о компьютере и подготавливается драйверы устройств к первой загрузке. Эта подготовка включает в себя следующие этапы:

  • Состояние устройства для оборудования удалено.

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

  • Файлы журналов устройств удаляются.

При обобщении компьютера используйте файл ответов с параметром Microsoft-Windows-PnpSysPrep\PersistAllDeviceInstalls , чтобы сэкономить время. Этот параметр не позволяет программе установки Windows удалить и перенастроить состояние устройства для идентичного оборудования. При первой загрузке обнаруженные драйверы устройств уже предварительно настроены, что может ускорить процесс первой загрузки.

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

Рекомендуется не использовать параметр PersistAllDeviceInstalls для основного эталонного образа. Вместо этого для каждой группы компьютеров с разными конфигурациями оборудования сначала загрузите основной эталонный образ на новый эталонный компьютер с запланированной конфигурацией оборудования. Затем запишите новый образ этой установки и используйте параметр PersistAllDeviceInstalls .

Дополнительные сведения о том, как обобщить образ Windows, см. в разделе Sysprep (generalize) a Windows installation.

Рекомендации по редакциям драйверов и ранжированию драйверов

Не поддерживайте несколько версий или редакций одного пакета драйверов в одном образе. Используйте автономные или сетевые средства обслуживания для обновления драйверов.

Обычно, когда программа установки Windows загружает компьютер и на этом компьютере существует несколько версий пакета драйверов, программа установки определяет, какой драйвер установить, используя ранжирование драйверов. Но при использовании параметра PersistAllDeviceInstalls нормальные процессы ранжирования драйверов не выполняются. Таким образом, устройства, использующие устаревшие драйверы, могут оставаться установленными. Дополнительные сведения о ранжировании драйверов см. в статье Как Windows ранжирует драйверы на сайте MSDN.

Если необходимо добавить драйвер устройства в образ, использующий параметр PersistAllDeviceInstalls , можно обновить драйверы устройства одним из следующих способов:

Устранение неполадок с различиями в конфигурации оборудования

Чтобы параметр PersistAllDeviceInstalls работал правильно, конфигурация оборудования должна быть идентичной на эталонном компьютере и на конечных компьютерах. Конфигурация оборудования включает следующие компоненты:

  • Оборудование и модель.

  • Прошивки. Обновления, редакции и различия в конфигурации могут привести к тому, что некоторые устройства будут сообщать о различных критериях для сопоставления драйверов устройств или использовать разные ресурсы. Пример:

    • Устройства на основе периферийных компонентов (PCI) могут внедрять различные номера редакций подсистемы в сообщаемые идентификаторы оборудования.

    • Редакции BIOS могут изменять пространство имен Advanced Configuration and Power Interface (ACPI). Это приводит к тому, что программа установки Windows сообщает о существующих устройствах по-разному или вводит существующие устройства в качестве новых.

    • Различия в конфигурации системы BIOS могут привести к тому, что системные устройства будут запрашивать разные ресурсы памяти, операций ввода-вывода, прямого доступа к памяти (DMA) или запроса прерывания (IRQ).

  • Физическое расположение. Конфигурации оборудования должны использовать одни и те же номера слота, порта или сокета для подключения к внешним устройствам. Пример:

    • Карты расширения PCI должны быть вставлены в те же номера слотов.

    • USB-устройства должны быть подключены или подключены к тем же номерам портов на одних и том же контроллерах узла USB и интегрированных концентраторах.

    • Устройства хранения должны быть подключены к тем же контроллерам и каналам хранилища.

Различия в конфигурации оборудования с низким, средним и высоким риском

При использовании параметра PersistAllDeviceInstalls любые аппаратные различия могут привести к проблемам. Но некоторые различия, скорее всего, вызовут проблемы, чем другие.

Различия в низком риске

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

  • тактовая частота процессора;

  • Объем памяти.

  • Емкость жесткого диска

  • Внешние устройства ввода, такие как клавиатуры и устройства мыши

  • Мониторы

Различия между средними рисками

Для следующих типов различий оборудования не рекомендуется использовать параметр PersistAllDeviceInstalls :

  • Видеоадаптеры

  • Дисковые накопители и средства чтения мультимедиа, такие как оптические накопители и карта считыватели

  • Внутренние или интегрированные устройства шины, такие как USB или 1394

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

Различия с высоким риском

Для основных аппаратных различий не используйте параметр PersistAllDeviceInstalls . Эти отличия описаны ниже.

  • Чипсет системной платы или торговая марка ЦП

  • Контроллеры устройств хранения

  • Различия форм-факторов, такие как переход с рабочего стола на ноутбук или с ноутбука на рабочий стол

  • Различия в раскладке клавиатуры, например переход со стандартной 101-клавишной клавиатуры на японскую клавиатуру с 106 клавишами

  • Любые другие устройства, которые находятся в пути перечисления загрузочного тома Windows

Типы проблем, которые могут возникнуть при изменении конфигурации оборудования

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

  • Нестабильность системы

  • Невозможность использования некоторых основных или расширенных функций устройства

  • Продление времени загрузки и продление времени установки

  • Устройства с неправильными именами в папке Устройства и принтеры, диспетчер устройств и другие пользовательские интерфейсы, связанные с устройствами

  • Серьезные системные проблемы, которые оставляют компьютер в незагрузочном состоянии

Различия в конфигурации оборудования, которые могут привести к сбоям загрузки системы

Если критически важное для загрузки оборудование не идентично на компьютере-образце и конечном компьютере, использование параметра PersistAllDeviceInstalls может привести к серьезным системным проблемам, которые могут оставить компьютер в незагрузочном состоянии.

Пакеты драйверов, критически важные для загрузки, могут принадлежать к любому из следующих классов установки устройств Windows, как определено директивой ClassGUID в <разделе Версия> INF-файлов в пакетах драйверов.

Класс настройки устройства, предоставляемый системой ClassGUID

Система

{4D36E97D-E325-11CE-BFC1-08002BE10318}

Компьютер

{4D36E966-E325-11CE-BFC1-08002BE10318}

Процессор

{50127DC3-0F36-415E-A6CC-4CB3BE910B65}

PCMCIA

{4D36E977-E325-11CE-BFC1-08002BE10318}

HDC

{4D36E96A-E325-11CE-BFC1-08002BE10318}

SCSIAdapter

{4D36E97B-E325-11CE-BFC1-08002BE10318}

DiskDrive

{4D36E967-E325-11CE-BFC1-08002BE10318}

CDROM

{4D36E965-E325-11CE-BFC1-08002BE10318}

FDC

{4D36E969-E325-11CE-BFC1-08002BE10318}

FloppyDisk

{4D36E980-E325-11CE-BFC1-08002BE10318}

Громкость

{71A27CDD-812A-11D0-BEC7-08002BE2092F}

USB

{36FC9E60-C465-11CF-8056-444553540000}

SBP2

{D48179BE-EC20-11D1-B6B8-00C04FA372A7}

1394

{6BDD1FC1-810F-11D0-BEC7-08002BE2092F}

Перечисление1394

{C459DF55-DB08-11D1-B009-00A0C9081FF6}

Клавиатура

{4D36E96B-E325-11CE-BFC1-08002BE10318}

Мышь

{4D36E96F-E325-11CE-BFC1-08002BE10318}

HIDClass

{745A17A0-74D3-11D0-B6FE-00A0C90F57DA}

порты;

{4D36E978-E325-11CE-BFC1-08002BE10318}

Дополнительные сведения об этих классах настройки устройств см. в статье Классы настройки устройств, предоставляемые системой , на сайте MSDN.

Неопределяемое оборудование

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

Чтобы развернуть оборудование, которое может не присутствовать или обнаружить при первой загрузке, добавьте все применимые драйверы устройств в эталонный образ, подключите или включите соответствующие устройства, чтобы Windows могла установить их, и используйте параметр Microsoft-Windows-PnpSysprep/DoNotCleanUpNonPresentDevices при записи образа.

Важно Использование параметра DoNotCleanUpNonPresentDevices может привести к лишнему хранению избыточных состояний устройства и снизить время загрузки.

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

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

Пример потенциального конфликта драйвера

В следующем примере вымышленное IHV с именем Fabrikam создает контроллеры хранилища двух типов: StandardController и ExtremeController. Fabrikam предполагает, что на определенном компьютере одновременно устанавливается только один тип контроллера хранилища.

Пакет драйверов определяет конфигурации StandardController и ExtremeController для использования одного и того же имени службы драйверов storctrl. Служба драйверов storctrl использует различные параметры службы, которые изменяются в зависимости от того, какое оборудование (StandardController или ExtremeController) установлено. Поскольку и StandardController, и ExtremeController используют одну и ту же службу, они не могут сосуществовать.

В этом примере показано содержимое файла пакета драйвера Storctrl.inf:

[Version]
Signature = "$WINDOWS NT$"
Class = SCSIAdapter
ClassGuid = {4D36E97B-E325-11CE-BFC1-08002BE10318}
...
[Manufacturer]
%Fabrikam% = Fabrikam,NTx86

[Fabrikam.NTx86]
%StandardController% = StandardController_DDInstall,PCI\VEN_ABCD&DEV_0001
%ExtremeController%  = ExtremeController_DDInstall, PCI\VEN_ABCD&DEV_0002

...

[StandardController_DDInstall.Services]
AddService = storctrl,0x00000002,StandardController_ServiceInstall

[StandardController_ServiceInstall]
ServiceType  = 1 ; SERVICE_KERNEL_DRIVER
StartType    = 0 ; SERVICE_BOOT_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ImagePath    = %12%\storctrl.sys
AddReg       = StandardController_ServiceSettings

[StandardController_ServiceSettings]
HKR,Settings,LowPowerMode,0x00010001,1
HKR,Settings,ErrorCorrection,0x00010001,1

...

[ExtremeController_DDInstall.Services]
AddService = storctrl,0x00000002,ExtremeController_ServiceInstall

[ExtremeController_ServiceInstall]
ServiceType  = 1 ; SERVICE_KERNEL_DRIVER
StartType    = 0 ; SERVICE_BOOT_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ImagePath    = %12%\storctrl.sys
AddReg       = ExtremeController_ServiceSettings

[ExtremeController_ServiceSettings]
HKR,Settings,LowPowerMode,0x00010001,0
HKR,Settings,ErrorCorrection,0x00010001,4
...

Если StandardController находится на компьютере-образце и его параметры сохраняются во время записи образа, служба драйвера storctrl предварительно настроена. Если ExtremeController находится на конечном компьютере, Windows может использовать предварительно настроенные параметры и файлы, предназначенные для StandardController. Это может привести к непредвиденным результатам.

IHV может помочь устранить конфликт с помощью одного из следующих вариантов:

  • Создайте отдельные пакеты драйверов, которые имеют отдельные INF-файлы для каждой конфигурации, и импортируйте только необходимый пакет драйверов в образ Windows во время развертывания. Например, разделите Storctrl.inf на два отдельных INF-файла, одну версию для StandardController и одну версию для ExtremeController, и импортируйте в образ Windows только необходимый пакет драйверов.
  • Создайте другую службу в пакете драйвера для каждой конфигурации. Присвойте каждой службе свое имя (например, storctrl и storctrlx) и укажите на другой двоичный файл образа (например, Storctrl.sys и Storctrlx.sys).

Общие сведения о драйверах устройств и развертывании