设备驱动程序包
可以在部署映像之前、期间或之后将驱动程序包添加到 Windows 映像。 规划如何将驱动程序包添加到 Windows 部署时,必须了解驱动程序包如何添加到映像、驱动程序排名如何影响部署以及驱动程序包的数字签名要求。
可将驱动程序包添加到 Windows 映像:
有关详细信息,请参阅了解维护策略。
脱机服务是指在不启动操作系统的情况下完全脱机修改 Windows 映像。 可以使用 DISM 在脱机 Windows 或 Windows PE 映像上添加、删除和枚举驱动程序包。 DISM 随 Windows 一起安装,并且还会在 Windows 评估和部署工具包 (Windows ADK) 中分发。 有关 DISM 的详细信息,请参阅 DISM - 适用于 Windows 的部署映像维护和管理技术参考。
备注
无法使用 DISM 删除自带的驱动程序包(默认安装在 Windows 上的驱动程序包),但某些网络驱动程序除外。 使用 DISM 只能删除第三方或非自带的驱动程序包。
如果使用的是 DISM,则可以将驱动程序包添加到脱机 Windows 映像。
显示了“Designed for Windows”徽标的驱动程序包以 .cab 文件的形式提供。 如果使用 DISM 进行安装,则必须在安装驱动程序包之前展开 .cab 文件。
在安装程序中打包的驱动程序只能安装在正在运行的 Windows 操作系统上。 若要安装这些类型的驱动程序,可以将自定义命令添加到答案文件,以安装驱动程序包。 有关详细信息,请参阅将自定义命令添加到应答文件。
备注
不建议运行安装程序将驱动程序添加到映像。 如果可能,请从安装程序中提取驱动程序包,以便可以使用 DISM 将它们添加到映像。
有关详细信息,请参阅在脱机 Windows 映像中添加和删除驱动程序。
使用 Windows 安装程序进行部署时,可以使用无人参与应答文件将驱动程序包添加到映像。 在此答案文件中,可以在 Microsoft-Windows-PnpCustomizationWinPE 或 Microsoft-Windows-PnpCustomizationNonWinPE 组件中指定驱动程序包的路径(网络共享或本地路径)。 运行 Windows 安装程序并指定答案文件的名称时,会暂存开箱急用驱动程序包(添加到映像上的驱动程序存储区):
在计算机启动之前,使用 windowsPE 或 offlineServicing 配置通行证将驱动程序包添加到 Windows 映像。 还可以使用此方法添加将系统启动到 Windows 映像所需的驱动程序包。 有关详细信息,请参阅在 Windows 安装期间将设备驱动程序添加到 Windows。 有关 Windows 安装程序工作原理的详细信息,请参阅 Windows 安装程序技术参考。
若要添加启动到 Windows PE 所需的驱动程序包,请使用 windowsPE 配置通行证。
使用 Windows 安装程序添加驱动程序包的方法包括:
- 在安装程序的 offlineServicing 配置阶段使用应答文件添加驱动程序包。
- 在安装程序的 windowsPE 配置阶段使用应答文件添加驱动程序包。
- 对于 Windows Server,将驱动程序包放在 $WinPEDriver$ 目录中,以便在安装程序的 windowsPE 配置阶段自动安装。 将扫描值为 C 或更高的所有驱动器号,以查找 $WinPEDriver$ 目录。 在安装过程中,必须可在硬盘中访问该驱动器。 确保在可以访问该驱动器之前它不需要加载存储驱动程序。
有关这些配置阶段和其他配置阶段的详细信息,请参阅 Windows 安装程序配置阶段。
可以使用 PnPUtil 工具在运行中的操作系统上添加或删除驱动程序包。 或者,可以使用应答文件在计算机以审核模式启动时自动安装驱动程序包。 如果你想要维护一个简单的 Windows 映像,今后只想添加特定硬件配置所需的驱动程序包,则这些方法可能很有帮助。 有关如何使用审核模式的详细信息,请参阅将 Windows 启动进入审核模式或 OOBE。
将驱动程序包联机添加到运行中操作系统的方法包括:
使用 PnPUtil 添加或删除 PnP 驱动程序包。 有关详细信息,请参阅在命令行中使用 PnPUtil 安装即插即用设备。
在以审核模式启动计算机后,使用应答文件自动安装 PnP 驱动程序包。 有关详细信息,请参阅在审核模式下联机添加驱动程序。
处于 Windows S 模式的驱动程序包必须满足特定的要求。 请参阅 Windows 10 S 驱动程序要求,了解可在 S 模式下添加到 Windows 的驱动程序包类型。
若要添加多个驱动程序包,应在源位置为每个驱动程序包或驱动程序包类别创建单独的文件夹。 这可以确保在添加具有相同文件名的驱动程序包时不会发生冲突。 在操作系统上安装驱动包后,该包将重命名为 Oem*.inf,以确保文件名在操作系统中保持唯一。 例如,名为 MyDriver1.inf 和 MyDriver2.inf 的暂存驱动程序在安装后可能重命名为 Oem0.inf 和 Oem1.inf。
如果在应答文件中指定设备驱动程序路径,则指定的目录和子目录中所有 .inf 驱动程序包都将添加到 Windows 映像的驱动程序存储中。 例如,如果你希望 C:\MyDrivers\Networking、C:\MyDrivers\Video 和 C:\MyDrivers\Audio 目录中的所有驱动程序包在 Windows 映像中可用,请在应答文件中指定设备驱动程序路径 C:\MyDrivers。 如果不使用应答文件,可以在 DISM 中使用 /recurse 命令。 有关 /recurse 命令的详细信息,请参阅 DISM 驱动程序维护命令行选项。 此命令确保每个子目录中的所有驱动程序包都会添加到 Windows 映像中的驱动程序存储。
如果指定的目录和子目录中的所有驱动程序包都已添加到映像,则你应认真管理应答文件或 DISM 命令以及这些目录。 尽最大努力解决有关不必要的驱动程序包增大映像大小的问题。
部署驱动程序包时最常见的问题之一是,某个驱动程序包已成功导入驱动程序存储,但在系统联机后,PnP 却找到了排名更高的驱动程序并安装该驱动程序。
Windows PnP 管理器按重要性顺序为这些驱动程序包属性排名:
- 签名
- PnP ID 匹配
- 驱动程序日期
- 驱动程序版本
例如,如果某个驱动程序包的 PnP ID 匹配程度更高但未签名,则会优先安装匹配兼容 ID 的已签名驱动程序包。 如果某个较旧驱动程序包的 PnP ID 匹配程度更高或具有签名,则该驱动程序包的排名可能高于较新的驱动程序包。
有关驱动程序包排名的详细信息,请参阅 Windows 如何为驱动程序排名。
签名的驱动程序包是 Windows 中的一项关键安全功能。 安装在 Windows 映像中的驱动程序包必须具有数字签名。
所有启动启动驱动程序服务二进制文件都必须包含嵌入式签名。 例如,对于访问启动磁盘至关重要的内核模式 .sys 文件。
可以通过两种方式对驱动程序二进制文件进行签名:
启动启动驱动程序服务二进制文件通过一种称为嵌入式签名的方法进行数字签名。 嵌入式签名可以提高启动加载性能。 对于不属于 PnP 驱动程序包一部分的驱动程序二进制文件,应该嵌入签名,以免签名在操作系统升级期间丢失。 请参阅驱动程序文件中的嵌入式签名,了解有关嵌入式签名的详细信息。
已数字签名的 PnP 驱动程序包包含一个已数字签名的目录 (.cat) 文件。 该目录文件包含驱动程序包的所有 .inf 安装文件的哈希。 只需提供一个已签名的目录文件,就能正确安装大多数 PnP 驱动程序包。
请参阅驱动程序签名,了解有关对驱动程序进行签名的详细信息。
以下网站提供了有关驱动程序包要求的详细信息:
有关 PnP 驱动程序包部署的详细信息,请参阅 PnP 设备安装签名要求。
有关数字签名和开发驱动程序包的详细信息,请参阅 Windows 硬件开发人员中心网站上的相关网页。