无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 5846|回复: 26
打印 上一主题 下一主题

[讨论] 微软驱动安装程序

[复制链接]
跳转到指定楼层
1#
发表于 2023-5-14 21:02:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 chishingchan 于 2023-5-14 21:12 编辑

DPInst.exe (32 & 64)
  1. 安装和卸载驱动程序包。
  2. 默认情况下,该工具可搜索当前目录并尝试安装所有找到的驱动程序包。

  3. 使用情况: DPInst64.exe [/U INF-file][/S | /Q][/LM][/P][/F][/SH][/SA]
  4. [/A][/PATH Path][/EL][/L LanguageID][/C][/D][/LogTitle Title][/SW][/? | /h | /help]

  5.   /U INF-file                卸载一个驱动程序包 (INF-文件)。
  6.   /S | /Q                静默 (静音) 模式。取消设备安装向导和操作系统弹出的任何对话框。
  7.   /LM                        旧模式。接受未经签名的驱动程序包及含有丢失文件的程序包。这些程序包将不会安装在最新版本的 Windows 中。
  8.   /P                        如果要安装的驱动程序包没有当前的程序包好,则进行提示。
  9.   /F                        如果驱动程序包没有当前的程序包好,则强制安装。
  10.   /SH                        扫描硬件以匹配设备,并且只为目前存在的设备复制并安装这些驱动程序。仅对即插即用驱动程序有效。
  11.   /SA                        取消为每个驱动程序包正常创建的添加/删除程序项。
  12.   /A                        全部安装或不安装。
  13.   /PATH Path                搜索指定路径下的驱动程序包。
  14.   /EL                        启用未明确列在 XML 文件中的所有语言。
  15.   /L LanguageID                尝试在所有 UI 中使用指定的语言。对于本地化测试非常有用。
  16.   /SE                        取消 EULA。
  17.   /C                        将日志文件输出转储到附加控制台(Windows XP 及更新版本)。
  18.   /D                        卸载时删除驱动程序二进制文件。
  19.   /SW                        取消设备安装向导,操作系统可能仍会弹出用户对话框。
  20.   /? | /h | /help        显示此帮助。
复制代码

devcon.exe (32 & 64)
  1. Device Console Help:

  2. devcon_x64 [-r] [-m:\\<machine>] <command> [<arg>...]

  3. -r           Reboots the system only when a restart or reboot is required.

  4. <machine>    Specifies a remote computer.

  5. <command>    Specifies a Devcon command (see command list below).

  6. <arg>...     One or more arguments that modify a command.

  7. For help with a specific command, type: devcon_x64 help <command>
  8. classfilter          Add, delete, and reorder class filters.
  9. classes              List all device setup classes.
  10. disable              Disable devices.
  11. driverfiles          List installed driver files for devices.
  12. drivernodes          List driver nodes of devices.
  13. enable               Enable devices.
  14. find                 Find devices.
  15. findall              Find devices, including those that are not currently attached.
  16. help                 Display Devcon help.
  17. hwids                List hardware IDs of devices.
  18. install              Install a device manually.
  19. listclass            List all devices in a setup class.
  20. reboot               Reboot the local computer.
  21. remove               Remove devices.
  22. rescan               Scan for new hardware.
  23. resources            List hardware resources for devices.
  24. restart              Restart devices.
  25. sethwid              Modify Hardware ID's of listed root-enumerated devices.
  26. stack                List expected driver stack for devices.
  27. status               List running status of devices.
  28. update               Update a device manually.
  29. updateni             Manually update a device (non interactive).
  30. dp_add               Adds (installs) a third-party (OEM) driver package.
  31. dp_delete            Deletes a third-party (OEM) driver package.
  32. dp_enum              Lists the third-party (OEM) driver packages installed on this machine.
复制代码

还有哪些微软出品的安装驱动程序吗?
易用性还是觉得 DPInst.exe 好!

评分

参与人数 1无忧币 +5 收起 理由
Anson4 + 5 赞一个!

查看全部评分

来自 2#
 楼主| 发表于 2023-5-15 10:05:02 | 只看该作者
本帖最后由 chishingchan 于 2023-5-15 10:23 编辑

谢谢 2# 的提示!
PnPUtil - Windows drivers | Microsoft Learn
DevGen - Windows drivers | Microsoft Learn
Windows 设备控制台 (Devcon.exe) - Windows drivers | Microsoft Learn

PnPUtil
PnPUtil (PnPUtil.exe) 是一种命令行工具,可让管理员对 驱动程序包执行操作。 示例包括:
1、将驱动程序包添加到 驱动程序存储区。
2、在计算机上安装驱动程序包。
3、从驱动程序存储区中删除驱动程序包。
4、枚举当前位于驱动程序存储区中的驱动程序包。 仅列出非内置包的驱动程序包。 内置驱动程序包是 Windows 或其 service pack 的默认安装中包含的程序包。
  1. PnPUtil 示例
  2. 本主题提供有关如何使用 PnPUtil 工具的示例。

  3. /add-driver

  4. 添加驱动程序包
  5. pnputil /add-driver x:\driver.inf

  6. 添加多个驱动程序包
  7. pnputil /add-driver c:\oem\*.inf

  8. 在现有设备上添加和安装驱动程序包
  9. pnputil /add-driver device.inf /install


  10. /delete-driver

  11. 删除驱动程序包
  12. pnputil /delete-driver oem0.inf

  13. 强制删除驱动程序包
  14. pnputil /delete-driver oem1.inf /force


  15. /export-driver

  16. 导出驱动程序包
  17. pnputil /export-driver oem6.inf .

  18. 导出所有驱动程序包
  19. pnputil /export-driver * c:\backup


  20. /enum-drivers

  21. 枚举 OEM 驱动程序包
  22. pnputil /enum-drivers

  23. 枚举特定类的所有 OEM 驱动程序包
  24. pnputil /enum-drivers /class "System"

  25. 枚举所有 OEM 驱动程序包并显示驱动程序文件
  26. pnputil /enum-drivers /files


  27. /disable-device

  28. 禁用设备实例 ID 指定的设备
  29. pnputil /disable-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"

  30. 禁用具有特定硬件/兼容 ID 的所有设备
  31. pnputil /disable-device /deviceid "USB\Class_03"

  32. 在特定总线上禁用特定类的所有设备
  33. pnputil /disable-device /class "USB" /bus "PCI"


  34. /enable-device

  35. 启用设备实例 ID 指定的设备
  36. pnputil /enable-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"

  37. 启用具有特定硬件/兼容 ID 的所有设备
  38. pnputil /enable-device /deviceid "USB\Class_03"

  39. 在特定总线上启用特定类的所有设备
  40. pnputil /enable-device /class "USB" /bus "PCI"


  41. /restart-device

  42. 重启设备实例 ID 指定的设备
  43. pnputil /restart-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"

  44. 使用特定硬件/兼容 ID 重启所有设备
  45. pnputil /restart-device /deviceid "USB\Class_03"

  46. 在特定总线上重启特定类的所有设备
  47. pnputil /restart-device /class "USB" /bus "PCI"


  48. /remove-device

  49. 删除设备实例 ID 指定的设备
  50. pnputil /remove-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"

  51. 删除具有特定硬件/兼容 ID 的所有设备
  52. pnputil /remove-device /deviceid "USB\Class_03"

  53. 删除特定总线上特定类的所有设备
  54. pnputil /remove-device /class "USB" /bus "PCI"


  55. /scan-devices

  56. 扫描系统以查找任何设备硬件更改
  57. pnputil /scan-devices


  58. /enum-devices

  59. 仅枚举系统上的已连接设备
  60. pnputil /enum-devices /connected

  61. 枚举具有特定实例 ID 的设备
  62. pnputil /enum-devices /instanceid "ACPI\PNP0A08\1"

  63. 枚举具有特定类的所有设备
  64. pnputil /enum-devices /class "Display"

  65. 枚举具有特定问题代码的所有设备
  66. pnputil /enum-devices /problem 28

  67. 枚举所有有问题的设备并显示硬件/兼容的 ID
  68. pnputil /enum-devices /problem /deviceids

  69. 枚举具有特定硬件/兼容 ID 的所有设备
  70. pnputil /enum-devices /deviceid "USB\Class_03"

  71. 枚举具有特定总线的所有设备
  72. pnputil /enum-devices /bus "PCI"


  73. /enum-interfaces

  74. 仅枚举系统上已启用的接口
  75. pnputil /enum-interfaces /enabled

  76. 枚举具有特定接口类 GUID 的所有接口
  77. pnputil /enum-interfaces /class "{884b96c3-56ef-11d1-bc8c-00a0c91405dd}"


  78. /enum-classes

  79. 枚举系统上的所有设备安装类
  80. pnputil /enum-classes

  81. 枚举特定设备安装类的信息
  82. pnputil /enum-classes /class "Display"
复制代码


查找的同时还找到下面这个,但不懂具体应用!
  1. DevGen
  2. DevGen (DevGen.exe) 是一种命令行工具,允许管理员创建 软件 设备和根枚举设备以进行测试。

  3. 语法
  4. DEVGEN [/add [<…>] | /remove <…>| /?]


  5. 命令

  6. /add
  7. 创建设备。

  8. 语法
  9. DEVGEN /add [/bus <SWD | ROOT>] [/instanceid <instance ID>]
  10.             [/parent <device instance ID>] [/hardwareid <hardware ID>]
  11.             [/compatibleid <compatible ID>] [/wait [<timeout in MS>]]
  12.             [/unplug] [/subtree]

  13. 标记:

  14. /bus <SWD | ROOT> - SWD 枚举将在重新启动后断开连接的软件设备。 ROOT 枚举在重新启动后将保留的根设备。 默认情况下会创建软件设备。

  15. /instanceid <instance ID> - 生成设备时使用的唯一实例 ID。

  16. /parent <device instance ID> - 要枚举其下的设备的父设备。 仅支持软件设备。 默认情况下,设备在 HTREE\ROOT\0 下枚举。

  17. /hardwareid <hardware ID> - 在生成的设备上设置的硬件 ID。 可以通过多次使用此参数来设置多个硬件 ID。

  18. /compatibleid <compatible ID> - 在生成的设备上设置的兼容 ID。 可以通过多次使用此参数来设置多个兼容 ID。

  19. /wait [<timeout in MS>] - 等待用户提示或可选超时后立即删除设备。 以毫秒为单位指定的超时。

  20. /unplug - 修改 /wait 参数以在不删除的情况下拔出设备。 设备将保留为非现有设备节点。 仅当使用 /wait 参数生成软件设备时有效。

  21. /subtree - 删除整个设备子树,包括任何子设备。


  22. /remove
  23. 删除由设备实例 ID 指定的设备。 只有使用 DevGen 创建的设备才能使用 DevGen 删除。

  24. 语法
  25. DEVGEN /remove <device instance ID> [/subtree]

  26. 标记:

  27. /subtree - 删除整个设备子树,包括任何子设备。

  28. 软件设备与 Root-Enumerated 设备
  29. 默认情况下,DevGen 会创建一个 软件设备。 软件设备是建议的测试设备,因为它们在重新启动后不会持久保存,也不会使系统混乱。 仅对需要重新启动系统的测试用例使用根枚举设备。
复制代码




回复

使用道具 举报

3#
发表于 2023-5-14 21:15:09 | 只看该作者
还有个pnputil吧
回复

使用道具 举报

4#
发表于 2023-5-14 21:44:19 来自手机 | 只看该作者
dism

点评

谢谢提示! https://learn.microsoft.com/zh-cn/windows-hardware/manufacture/desktop/what-is-dism?view=windows-11  详情 回复 发表于 2023-5-15 10:25
回复

使用道具 举报

5#
发表于 2023-5-15 08:37:51 | 只看该作者
感谢分享
回复

使用道具 举报

6#
 楼主| 发表于 2023-5-15 10:25:26 | 只看该作者
回复

使用道具 举报

7#
 楼主| 发表于 2023-5-15 10:29:06 | 只看该作者
DIFx 指南
从 Windows 10 版本 1607 (Redstone 1) 开始,驱动程序安装框架 (DIFx) 工具 (Difxapi.dll、Difxapp.dll、 Difxappa.dll和 DPInst.exe) 已弃用,不再包含在 WDK 中。

相反,我们建议将 驱动程序包 作为不需要安装程序的独立驱动程序包提供。 这是一个独立包,它添加它正常运行所需的自己的设置或配置,而不是依赖于安装程序来修改驱动程序包可能依赖的系统状态。 需要独立驱动程序包才能支持驱动程序包方案,例如通过Windows 更新分发驱动程序包以及将驱动程序包添加到脱机映像。 建议发布独立的驱动程序包,以便通过Windows 更新交付到硬件插入的系统。 在 Windows 更新 上发布驱动程序包的第一步是将驱动程序包提交到 Windows 硬件开发人员中心。

如果仍然选择使用 DIFx,则必须使用较旧的 WDK 来获取正确的工具。 以下注意事项适用:

如果驱动程序包仅指定 targetOSVersion 值Windows 8.1或更高版本,则不能使用 DIFxApp MSI 自定义操作 (Difxapp.dll和Difxappa.dll) ,因为 DIFxApp 依赖于 GetVersionEx(从 Windows 8.1 开始更改的 API)。 TargetOSVersion 在 INF Manufacturer 节中指定。 DIFxApp 公开 MSI 自定义操作,例如 MsiProcessDrivers、MsiInstallDrivers 和 MsiUninstallDrivers。 如果驱动程序包将 TargetOSVersion 值指定为 Windows 8.1 或更高版本,则无法在 MSI 中使用这些自定义操作。
从 Windows 8.1 开始,链接到 Difxapi.dll 的应用程序必须包含面向要运行应用程序的 OS 版本的应用清单。 这是由于 DIFxAPI 对 GetVersionEx 的依赖,GetVersionEx 是一种从 Windows 8.1 开始更改的 API。 有关 Windows 8.1 中对 GetVersionEx 的更改的详细信息,请参阅面向 Windows 的应用程序。
如果驱动程序包使用 Windows 10 版本 1607 (内部版本 14310 及更高版本) ) 中引入的 TargetOSVersion (BuildNumber 部分,则不能将该驱动程序包结合使用 DIFx 工具。 DIFx 工具不支持 BuildNumber 目标。
使用 DIFx 版本 2.1,该版本在 Windows 7 WDK 中通过 Windows 10 版本 1511 WDK 提供。 尽管早期版本的 WDK 中提供了 DIFx 版本 2.1,但它与 Windows 7 及更高版本的 Windows 不兼容。
较旧的 WDK 仅包含 DIFx 二进制文件的 x86 和 amd64 版本。 DIFx 二进制文件不适用于其他体系结构。
尽管不再更新,但可以在 Difxapi.h 中找到 DIFx 的 API 参考文档。 如果使用 DriverPackagePreinstall、DriverPackageInstall 和 DriverPackageUninstall API,请考虑切换到 DiInstallDriver 和 DiUninstallDriver。

如果仍需要自定义安装程序来安装驱动程序包,请使用 PnPUtil 命令行工具或调用 驱动程序安装函数的自定义安装程序。

同样,如果需要自定义安装程序来卸载驱动程序包,请使用 PnPUtil 或调用 DiUninstallDriver 或 SetupUninstallOEMInf 的自定义安装程序。
回复

使用道具 举报

8#
发表于 2023-5-15 10:36:12 | 只看该作者
感谢分享
回复

使用道具 举报

9#
发表于 2023-5-15 12:06:04 | 只看该作者
感谢分享
回复

使用道具 举报

10#
发表于 2023-5-15 12:41:31 | 只看该作者
谢谢分享。
回复

使用道具 举报

11#
发表于 2023-5-16 15:57:06 | 只看该作者
支持 楼主分享@
回复

使用道具 举报

12#
发表于 2023-5-24 21:24:47 | 只看该作者
感谢分享!
回复

使用道具 举报

13#
发表于 2023-5-27 22:55:36 | 只看该作者
谢谢分享
回复

使用道具 举报

14#
发表于 2023-6-3 01:57:44 | 只看该作者
感谢分享
回复

使用道具 举报

15#
发表于 2023-6-24 15:12:15 | 只看该作者
感谢分享
回复

使用道具 举报

16#
发表于 2023-7-12 21:40:20 | 只看该作者
感谢分享
回复

使用道具 举报

17#
发表于 2023-7-24 09:49:11 | 只看该作者
学习学习。谢谢分享
回复

使用道具 举报

18#
发表于 2023-7-24 09:52:57 | 只看该作者
学到了
回复

使用道具 举报

19#
发表于 2023-7-24 21:23:43 | 只看该作者
驱动要怎么卸载呢

点评

dism /Remove-Driver  详情 回复 发表于 2023-7-30 17:23
回复

使用道具 举报

20#
发表于 2023-7-30 17:23:07 来自手机 | 只看该作者
LinkStark 发表于 2023-7-24 21:23
驱动要怎么卸载呢

dism  /Remove-Driver
回复

使用道具 举报

21#
发表于 2023-8-18 01:11:27 | 只看该作者
学习学习
回复

使用道具 举报

22#
发表于 2023-8-26 10:35:51 | 只看该作者
点命令还是有些门槛的
回复

使用道具 举报

23#
发表于 2023-9-12 09:47:03 | 只看该作者

学习学习
回复

使用道具 举报

24#
发表于 2024-2-27 09:29:24 | 只看该作者
DPInst.exe是微软官方工具吗?
回复

使用道具 举报

25#
发表于 2024-2-28 07:22:34 | 只看该作者
感谢分享
回复

使用道具 举报

26#
发表于 2024-3-3 00:31:24 | 只看该作者
谢谢分享
回复

使用道具 举报

27#
发表于 2024-3-7 13:39:32 | 只看该作者
看不明白
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-25 15:04

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表