Mantener configuraciones de controlador al capturar una imagen de Windows

Un escenario de implementación común es capturar una sola imagen de Windows desde un equipo de referencia y, a continuación, aplicar la imagen a un grupo de equipos de destino que tienen configuraciones de hardware idénticas.

Para ahorrar tiempo durante la instalación y acelerar la experiencia integrada (OOBE) para los usuarios finales, puede indicar al programa de instalación de Windows que mantenga las configuraciones de controladores desde el equipo de referencia como parte de la imagen de Windows. Solo debe hacerlo cuando el hardware del equipo de referencia y el hardware de los equipos de destino sean idénticos. Al hacerlo, el programa de instalación de Windows mantiene las configuraciones del controlador durante la captura e implementación de imágenes.

Indica al programa de instalación de Windows que mantenga las configuraciones de controladores

Antes de capturar una imagen, generalice el equipo mediante un archivo de respuesta que indique al programa de instalación de Windows que mantenga las configuraciones del controlador.

Para mantener las configuraciones del controlador mediante un archivo de respuesta

  1. En el equipo del técnico, abra el Administrador de imágenes de sistema (Windows SIM). Haga clic en Inicio, escriba Administrador de imágenes del sistema de Windows y, a continuación, seleccione Administrador de imágenes del sistema de Windows.

  2. Cree un nuevo archivo de respuesta o actualice un archivo de respuesta existente. Para obtener más información, vea Crear o abrir un archivo de respuesta y procedimientos recomendados para crear archivos de respuesta.

  3. Agregue el valor Microsoft-Windows-PnpSysprep/PersistAllDeviceInstalls . Para obtener más información, vea la sección Información general de este tema.

  4. Si el equipo tiene hardware no detectable, incluya la configuración Microsoft-Windows-PnpSysprep/DoNotCleanUpNonPresentDevices . Para obtener más información, consulte la sección Hardware no detectable de este tema.

  5. Generalice el equipo mediante el archivo de respuesta. Por ejemplo:

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

Información general

Los paquetes de controladores de Windows in-box incluyen controladores de dispositivo que admiten una amplia variedad de hardware popular. Si su hardware específico requiere controladores de dispositivo adicionales para arrancar, puede preinstalar controladores de dispositivo adicionales en la imagen de Windows. Los proveedores de hardware independientes (IHD) a menudo proporcionan estos controladores de dispositivo adicionales junto con su hardware del dispositivo. Para obtener más información sobre cómo agregar controladores de dispositivo, vea Agregar un controlador en línea en modo auditoría.

Para preparar una imagen de Windows para la implementación en varios equipos, debe usar la herramienta Preparación del sistema (Sysprep) para generalizar la imagen de Windows. La generalización de una imagen de Windows quita la información específica del equipo y prepara los controladores de dispositivo para el primer arranque. Esta preparación incluye estos pasos:

  • Se quita el estado del dispositivo para el hardware.

  • La configuración del controlador crítico para el arranque se restablece a sus valores predeterminados.

  • Los archivos de registro del dispositivo se eliminan.

Al generalizar el equipo, use un archivo de respuesta que tenga la configuración Microsoft-Windows-PnpSysPrep\PersistAllDeviceInstalls para ahorrar tiempo. Esta configuración impide que el programa de instalación de Windows quite y vuelva a configurar el estado del dispositivo para hardware idéntico. En el primer arranque, los controladores de dispositivo detectados ya están preconfigurados, lo que podría permitir una experiencia de primer arranque más rápida.

Importante Evite usar la opción PersistAllDeviceInstalls cuando el hardware y la configuración de hardware en el equipo de referencia no sean idénticos a los de los equipos de destino. Incluso las diferencias aparentemente menores en la configuración de hardware o hardware pueden causar problemas graves o fácilmente pasados por alto. Para obtener más información, consulte la sección Solución de problemas de diferencias de configuración de hardware de este tema.

Se recomienda no usar la configuración PersistAllDeviceInstalls en la imagen de referencia principal. En su lugar, para cada grupo de equipos que tienen una configuración de hardware diferente, cargue primero la imagen de referencia principal en un nuevo equipo de referencia que tenga la configuración de hardware planeada. A continuación, capture una nueva imagen de esta configuración y use la configuración PersistAllDeviceInstalls .

Para obtener más información sobre cómo generalizar la imagen de Windows, vea Sysprep (Generalizar) una instalación de Windows.

Procedimientos recomendados para revisiones de controladores y clasificación de controladores

No mantenga varias versiones ni revisiones del mismo paquete de controladores en la misma imagen. Use herramientas de mantenimiento sin conexión o en línea para actualizar controladores.

Normalmente, cuando el programa de instalación de Windows arranca un equipo y existen varias versiones de un paquete de controladores en ese equipo, el programa de instalación determina qué controlador instalar mediante la clasificación de controladores. Pero cuando se usa la configuración PersistAllDeviceInstalls , no se producen los procesos normales de clasificación de controladores. Por lo tanto, los dispositivos que usan controladores obsoletos pueden permanecer instalados. Para obtener más información sobre la clasificación de controladores, vea How Windows Ranks Drivers on MSDN (Clasificación de controladores de Windows en MSDN).

Si debe agregar un controlador de dispositivo a una imagen que use la configuración PersistAllDeviceInstalls , puede actualizar los controladores de dispositivo mediante uno de los métodos siguientes:

Solución de problemas de diferencias de configuración de hardware

Para que la configuración PersistAllDeviceInstalls funcione correctamente, la configuración de hardware debe ser idéntica en el equipo de referencia y en los equipos de destino. La configuración de hardware incluye los siguientes componentes:

  • Marca y modelo de hardware.

  • Firmware. Novedades, las revisiones y las diferencias de configuración pueden hacer que algunos dispositivos notifiquen criterios diferentes para que coincidan los controladores de dispositivo o usen recursos diferentes. Por ejemplo:

    • Los dispositivos basados en la interconexión de componentes periféricos (PCI) pueden insertar diferentes números de revisión del subsistema en sus identificadores de hardware notificados.

    • Las revisiones del BIOS pueden cambiar el espacio de nombres Advanced Configuration and Power Interface (ACPI). Esto hace que el programa de instalación de Windows notifique los dispositivos existentes de forma diferente o para introducir dispositivos existentes como nuevos dispositivos.

    • Las diferencias de configuración del sistema BIOS pueden hacer que los dispositivos del sistema reclaman diferentes recursos de memoria, E/S, acceso directo a memoria (DMA) o solicitud de interrupción (IRQ).

  • Ubicación física. Las configuraciones de hardware deben usar los mismos números de ranura, puerto o socket para conectarse a dispositivos externos. Por ejemplo:

    • Las tarjetas de expansión PCI deben insertarse en los mismos números de ranura.

    • Los dispositivos USB deben estar conectados o conectados a los mismos números de puerto en los mismos controladores de host USB y concentradores integrados.

    • Los dispositivos de almacenamiento deben estar conectados a los mismos controladores y canales de almacenamiento.

Diferencias de bajo riesgo, riesgo medio y alto riesgo en la configuración de hardware

Cuando se usa la configuración PersistAllDeviceInstalls , cualquier diferencia de hardware puede causar problemas. Pero es más probable que algunas diferencias causen problemas que otros.

Diferencias de bajo riesgo

Para los siguientes tipos de diferencias de hardware, puede solucionar posibles conflictos de controladores y seguir usando la configuración PersistAllDeviceInstalls :

  • Velocidad del reloj de la CPU

  • Cantidad de memoria

  • Capacidad de disco duro

  • Dispositivos de entrada externos, como teclados y dispositivos de mouse

  • Monitores

Diferencias de riesgo medio

Para los siguientes tipos de diferencias de hardware, se recomienda no usar la configuración PersistAllDeviceInstalls :

  • Tarjetas de vídeo

  • Unidades de almacenamiento y lectores multimedia, como unidades ópticas y lectores de tarjetas

  • Dispositivos de bus internos o integrados, como dispositivos USB o 1394

Cuando existen estos tipos de diferencias de hardware, es posible que el uso de esta configuración no reduzca el tiempo de instalación, incluso si trabaja en torno a posibles conflictos de controladores.

Diferencias de alto riesgo

Para las principales diferencias de hardware, no use el valor PersistAllDeviceInstalls . Estas diferencias incluyen:

  • Chipset de placa base o marca de CPU

  • Controladores de almacenamiento

  • Diferencias en el factor de forma, como un cambio de un escritorio a un portátil o de un portátil a un escritorio

  • Diferencias de diseño de teclado, como un cambio de un teclado estándar de 101 teclas a un teclado japonés de 106 teclas

  • Cualquier otro dispositivo que se encuentra en la ruta de acceso de enumeración del volumen de arranque de Windows

Tipos de problemas que pueden producirse con un cambio de configuración de hardware

Incluso las diferencias aparentemente menores en la configuración de hardware o hardware pueden causar problemas graves o fácilmente pasados por alto, como estos:

  • Inestabilidad del sistema

  • Incapacidad de usar parte de la funcionalidad básica o extendida de un dispositivo

  • Tiempos de arranque extendidos y tiempos de instalación extendidos

  • Dispositivos con nombre erróneo en la carpeta Dispositivos e impresoras, Administrador de dispositivos y otras interfaces de usuario relacionadas con el dispositivo

  • Graves problemas del sistema que dejan el equipo en un estado que no es de arranque

Diferencias de configuración de hardware que pueden provocar errores de arranque del sistema

Cuando el hardware crítico para el arranque no es idéntico en el equipo de referencia y en los equipos de destino, el uso de la configuración PersistAllDeviceInstalls puede causar problemas graves del sistema que pueden dejar el equipo en un estado que no sea de arranque.

Los paquetes de controladores críticos para el arranque pueden pertenecer a cualquiera de las siguientes clases de configuración de dispositivos Windows, como se identifica mediante la directiva ClassGUID en la <sección Versión> de los archivos .inf en sus paquetes de controladores.

Clase de configuración de dispositivo proporcionada por el sistema ClassGUID

Sistema

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

Computer

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

Procesador

{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}

Disco

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

Volumen

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

USB

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

SBP2

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

1394

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

Enum1394

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

Teclado

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

Mouse

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

HIDClass

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

Puertos

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

Para obtener más información sobre estas clases de configuración de dispositivos, vea Clases de instalación de dispositivos proporcionadas por el sistema en MSDN.

Hardware no detectable

Al implementar un equipo nuevo en un usuario final, es posible que algún hardware, como un dispositivo extraíble o un dispositivo que tenga un conmutador activado o desactivado, no esté presente ni detectado durante el primer arranque. De forma predeterminada, en el primer arranque, el programa de instalación de Windows quita el estado del dispositivo preconfigurado para el hardware no detectado.

Para implementar hardware que no esté presente o detectado en el primer arranque, agregue los controladores de dispositivo aplicables a la imagen de referencia, conecte o active los dispositivos aplicables para que Windows pueda instalarlos y use la configuración Microsoft-Windows-PnpSysprep/DoNotCleanUpNonPresentDevices al capturar la imagen.

Importante El uso de la configuración DoNotCleanUpNonPresentDevices puede provocar el almacenamiento innecesario de los estados del dispositivo excesivos y contribuir a tiempos de arranque más lentos.

Solución de problemas de conflictos de controladores

Para evitar conflictos de controladores entre paquetes de controladores críticos para el arranque independientes, el IHV debe asegurarse de que cada controlador de dispositivo usa nombres de servicio, valores de clave del Registro y nombres de archivo binarios diferentes.

Ejemplo de un posible conflicto de controladores

En el ejemplo siguiente, un IHV ficticio denominado Fabrikam genera dos tipos de controladores de almacenamiento: StandardController y ExtremeController. Fabrikam supone que solo se instala un tipo de controlador de almacenamiento a la vez en un equipo determinado.

El paquete de controladores define las configuraciones StandardController y ExtremeController para usar el mismo nombre de servicio de controlador, storctrl. El servicio de controlador storctrl usa diferentes configuraciones de servicio que cambian en función del hardware (StandardController o ExtremeController) instalado. Dado que StandardController y ExtremeController usan el mismo servicio, no pueden coexistir.

En este ejemplo se muestra el contenido del archivo de paquete de controladores 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
...

Si StandardController está en el equipo de referencia y su configuración se mantiene durante la captura de imágenes, el servicio del controlador storctrl está preconfigurado. Si ExtremeController está en el equipo de destino, Windows puede usar la configuración preconfigurada y los archivos destinados a StandardController. Puede provocar resultados inesperados.

El IHV puede ayudar a resolver el conflicto mediante una de estas opciones:

  • Cree paquetes de controladores independientes que tengan archivos .inf independientes para cada configuración e importe solo el paquete de controladores necesario en la imagen de Windows durante la implementación. Por ejemplo, divida Storctrl.inf en dos archivos .inf independientes, una versión para StandardController y una versión para ExtremeController e importe solo el paquete de controladores necesario en la imagen de Windows.
  • Cree otro servicio en el paquete de controladores para cada configuración. Asigne a cada servicio un nombre diferente (por ejemplo, storctrl y storctrlx) y apunte a un archivo de imagen binario diferente (por ejemplo, Storctrl.sys y Storctrlx.sys).

Información general sobre la implementación y los controladores de dispositivos