无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 27504|回复: 99
打印 上一主题 下一主题

[发布] DriverIndexer - 驱动索引加载器 V2.0.0

    [复制链接]
跳转到指定楼层
1#
发表于 2021-5-18 22:21:31 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 834772509 于 2025-11-27 17:34 编辑

简介

DriverIndexer是一个高效、智能的驱动程序管理和安装命令行工具。它专注于解决传统驱动包安装速度慢、资源浪费的问题。

-  按需解压 - 仅解压当前设备所需的驱动程序,大幅缩短安装时间。
-  智能匹配 - 自动识别硬件 ID,精准匹配最佳驱动程序。
-  多格式支持 - 支持驱动程序目录、7z 压缩包等多种驱动包格式。
-  高性能 - 利用多线程和智能索引技术提升安装和管理速度。
-  离线支持 - 支持对离线 Windows 系统进行驱动程序的导入、安装与管理,不依赖 DISM 环境。
- 命令行界面 - 支持静默安装和自动化部署,方便集成到维护脚本中。
- 驱动管理 - 提供系统驱动程序的导入、导出和删除功能。
- 驱动打包 - 可将驱动与程序合并为单一自解压可执行文件(EXE)。

DriverIndexer 的价值

传统的驱动包安装方式,需要将整个驱动包(可能包含几 GB 数据)全部解压,再调用 `Dpinst` 或类似工具进行安装,这不仅消耗大量时间,还浪费磁盘空间。
DriverIndexer通过建立索引文件,实现了根据设备需求按需解压和自动安装的功能,极大地提升了安装效率。

索引文件是什么?

索引文件是 `DriverIndexer` 的核心。由于硬件 ID 列表存储在 INF 文件内部,我们首先需要创建 `硬件 ID 列表` 与 `驱动包内驱动文件路径`
的对应关系。这一关系即是索引(JSON 格式)。
通过索引,程序能够迅速确定设备所需的驱动程序,从而实现精准的按需解压和安装。

软件架构

使用`Rust`语言编写,调用 WindowsAPI 获取硬件信息、安装设备驱动。

驱动匹配规则
三次匹配(防止部分驱动未安装成功)

  • 匹配当前系统架构
  • 匹配当前操作系统版本
  • 匹配当前设备的硬件 ID
  • 匹配当前设备的兼容 ID

驱动排序规则
  • 签名状态(微软签名 > 其他签名 > 未签名)
  • 匹配分数(最强优先)
  • 驱动日期(最新优先)
  • 驱动版本(最新优先)

使用说明
本程序为命令行程序,故需要在其后面接参数运行,如直接双击程序将会出现“闪退”现象,您可通过cmd、PowerShell等终端来运行。注意:请使用管理员身份运行终端。

创建驱动索引文件

索引文件通常在首次使用驱动包时创建,后续如驱动包内容发生变动,需要重建索引。
  1. DriverIndexer.exe index <驱动包/目录路径> <索引文件保存路径>
复制代码
- 选项
  • `--password <密码>`:指定驱动包密码

- 示例
  • DriverIndexer.exe index D:\netcard D:\index.json
  • DriverIndexer.exe index D:\netcard.7z D:\index.json

安装驱动程序

使用索引文件或直接指定驱动包路径进行安装。
  1. DriverIndexer.exe install <驱动包/目录路径> [索引文件路径] [选项]
复制代码
  • 驱动路径格式:压缩包(限 7zip 所支持的格式)、目录格式。
  • 支持通配符(`*`、`?`),用于匹配多个驱动包。
  • 不使用索引时将自动创建临时索引
选项
  • `--password <密码>`:指定驱动包密码,用于解压驱动包。
  • `--class <驱动类别>`:指定驱动类别,仅安装指定类别驱动。
  • `--missing-only`:仅安装未安装驱动的设备,默认安装所有匹配设备的驱动。
  • `--extract-path <解压目录>`:仅解压驱动,不安装驱动。默认解压到临时目录。
示例
  • DriverIndexer.exe install D:\netcard
  • DriverIndexer.exe install D:\netcard.7z
  • DriverIndexer.exe install D:\netcard\*.7z
  • DriverIndexer.exe install D:\netcard.7z netcard.json
  • DriverIndexer.exe install D:\netcard\*.7z D:\netcard\*.json
安装离线系统驱动

安装离线系统驱动库中的驱动,未指定系统盘则全盘搜索系统盘。
  1. DriverIndexer.exe install-offline [系统盘路径]
复制代码
选项
  • `--missing-only`:仅安装未安装驱动的设备,默认安装所有匹配设备的驱动。

  • `--class <驱动类别>`:仅安装指定类别驱动。

查看驱动索引信息


查看索引子命令,用于查看驱动索引文件中的信息。

  1. DriverIndexer.exe info <索引文件路径>
复制代码
示例
  • DriverIndexer.exe info D:\netcard.json


列举驱动


列出当前系统或离线系统的驱动存储中的驱动。
  1. DriverIndexer.exe list <系统盘路径>
复制代码
选项
  • `--class <驱动类别>`:指定驱动类别,仅显示指定类别驱动。
  • `--provider <驱动供应商>`:指定驱动供应商,仅显示指定供应商驱动。

导入驱动


将驱动导入到系统驱动存储区。
  1. DriverIndexer.exe import <系统盘路径> <驱动路径>
复制代码
选项
  • `--password <密码>`:指定驱动包密码,用于解压驱动包。
  • `--match-device`: 匹配当前系统设备,默认匹配所有设备。
导出驱动

从系统驱动存储中导出特定驱动。
  1. DriverIndexer.exe export <系统盘路径> <导出目录>
复制代码
选项
  • `--inf <驱动名称>`:指定驱动名称,仅导出指定驱动。
  • `--class <驱动类别>`:指定驱动类别,仅导出指定类别驱动。
  • `--provider <驱动供应商>`:指定驱动供应商,仅导出指定供应商驱动。
删除驱动

从系统驱动存储中删除驱动。
  1. DriverIndexer.exe remove <系统盘路径>
复制代码
选项
  • `--inf <驱动名称>`:指定驱动名称,仅删除指定驱动。
  • `--class <驱动类别>`:指定驱动类别,仅删除指定类别驱动。
  • `--provider <驱动供应商>`:指定驱动供应商,仅删除指定供应商驱动。
  • `--all`: 删除所有驱动。

创建自解压驱动程序包

将 DriverIndexer 与驱动包合并,生成一个单一的 EXE 文件。这个 EXE 将自动运行,并按需解压和安装内置驱动。
> 温馨提示:驱动包不能设置密码,否则会导致驱动安装失败。
  1. DriverIndexer.exe pack <驱动包/目录路径> <输出EXE路径>
复制代码
示例
  • DriverIndexer.exe pack D:\netcard D:\netcard.exe
  • DriverIndexer.exe pack D:\netcard.7z D:\netcard.exe

驱动文件整理

将一个目录内的 INF 文件按照厂商、类别等规则进行分类和重命名。
  1. DriverIndexer.exe organize <驱动路径> <导出目录>
复制代码

示例
  • DriverIndexer.exe organize D:\netcard D:\netcard-organized


更多帮助

为便于使用者快速体验,故此处仅列出基本使用,更多用法可前往 https://github.com/834772509/DriverIndexer 查看,项目开源,欢迎Star。

开源许可
DriverIndexer 使用 GPL V3.0 协议开源,请尽量遵守开源协议。
致谢

  • Hydrogen
  • Lightning
  • Skyfree
  • 红毛樱木
  • 小鸭子
  • 毛利
  • 优捷易

下载
DriverIndexer-x86.exe (1.07 MB, 下载次数: 87) DriverIndexer-x64.exe (1.21 MB, 下载次数: 193)

历史版本
DriverIndexer-x86.exe (1.26 MB, 下载次数: 410) DriverIndexer-x64.exe (1.41 MB, 下载次数: 792)

V2.0.0 更新日志
新增
  • 驱动程序管理,支持在线/离线导入/导出和查看
  • 驱动程序索引结构、驱动程序签名和其他字段
  • 用于弹出无驱动设备虚拟 CD-ROM 驱动器的命令和选项
  • 设备扫描命令
  • 用于安装离线系统驱动程序的命令
  • 驱动程序和索引文件匹配验证
  • 新增强制安装驱动程序的选项
  • 命令行程序提示符
  • 支持多种语言:繁体中文
更改
  • 使用 setup API 解析 INF 文件
  • 使用 setup API 获取硬件信息
  • 当驱动程序和索引不匹配时,自动生成索引
  • DEBUG 选项功能现在设置为调试选项;原有的 DEBUG 输出日志已更改为日志选项
  • 7-Zip 更新至 25.1.0.0
修复
  • 通过指定硬件 ID 参数(原为 INF 硬件 ID)改进了驱动程序安装
  • 改进了驱动程序匹配算法
  • 改进了兼容设备信息的重复匹配
  • 提高了驱动程序匹配性能
  • 改进了索引文件字段
  • 改进了内部错误处理逻辑(使用 anyhow)
  • 改进了本地化文本
  • 改进了驱动程序类别、版本和日期的大小写提取
移除
- Devcon 程序

DriverIndexer.png (33.8 KB, 下载次数: 408)

DriverIndexer.png

评分

参与人数 23无忧币 +120 收起 理由
情深梦缘 + 5 很给力!
FV4371 + 5 赞一个!
纯脆entropy + 5 赞一个!
2011wolfsina + 5 有密码的7z驱动包怎样指定密码?
rzp428 + 5 赞一个!
9001 + 5 火!
612731 + 5 赞一个!
wynew8au + 5 很给力!
whyme22 + 5
hhh333 + 5 很给力!
ttt0001 + 5 很给力!
2012雨晨绿软 + 5 想问下支持相对变量路径吗?
ksafei + 5 赞一个!
freesoft00 + 5
2012jiashanni + 5 赞一个!
826773297 + 5 赞一个!
slore + 5 赞一个!
tingting + 5 赞一个!
dfw9 + 5 神马都是浮云
hsmy + 5 赞一个!
nttwqz + 5 论坛真是卧虎藏龙!
我是小青蛙 + 10 赞一个!
Lightning + 5 赞一个!

查看全部评分

100#
发表于 前天 08:45 | 只看该作者
使用 DriverIndexer.exe export 默认导出确实是第三方驱动,但是使用 DriverIndexer.exe list C:\ 枚举的驱动太多了,跟导出的数量差距有几倍了,同一块硬盘上的同一个系统。
回复

使用道具 举报

99#
 楼主| 发表于 前天 07:01 来自手机 | 只看该作者
h111666b 发表于 2025-12-1 22:39
DriverIndexer.exe list C:\
以上命令枚举了全部的驱动列表,只需要枚举第三方驱动怎么处理?

默认就是只枚举第三方驱动
回复

使用道具 举报

98#
发表于 3 天前 | 只看该作者
DriverIndexer.exe list C:\
以上命令枚举了全部的驱动列表,只需要枚举第三方驱动怎么处理?

点评

默认就是只枚举第三方驱动  详情 回复 发表于 前天 07:01
回复

使用道具 举报

97#
发表于 3 天前 来自手机 | 只看该作者
确实很牛,把能装的驱动全安装成功,PE变得更加漂亮,只是PE得再做些调整,不知道什么原因导致桌面右键直接闪屏,没了右键菜单。
回复

使用道具 举报

96#
 楼主| 发表于 3 天前 来自手机 | 只看该作者
nnail 发表于 2025-12-1 19:46
好!很好!这样就可以搜索安装了。

我说的密码是指WIFI密码,不是指压缩包密码……这个密码要如何提取 ...

没有这个功能也不打算加,专注于驱动安装,如有需要可使用其他工具实现
回复

使用道具 举报

95#
发表于 3 天前 | 只看该作者
谢谢分享
回复

使用道具 举报

94#
发表于 3 天前 | 只看该作者
本帖最后由 nnail 于 2025-12-1 20:52 编辑
834772509 发表于 2025-12-1 19:27
安装离线系统中的驱动有专门的命令:DriverIndexer.exe install-offline C:\
其中C:\也可省略不写表示自 ...

好!很好!这样就可以搜索安装了。

我说的密码是指WIFI密码,不是指压缩包密码……这个密码要如何提取?

点评

没有这个功能也不打算加,专注于驱动安装,如有需要可使用其他工具实现  详情 回复 发表于 3 天前
回复

使用道具 举报

93#
发表于 3 天前 | 只看该作者
感谢大佬分享
回复

使用道具 举报

92#
 楼主| 发表于 3 天前 来自手机 | 只看该作者
nnail 发表于 2025-12-1 18:37
明白了,差别在要提供驱动包而不是自动搜索。
如果我把驱动包定位到C:\Windows\System32\DriverStore\, ...

安装离线系统中的驱动有专门的命令:DriverIndexer.exe install-offline C:\
其中C:\也可省略不写表示自动搜索系统盘。指定压缩包密码在后面加 -p 密码 就可以

点评

好!很好!这样就可以搜索安装了。 我说的密码是指WIFI密码,不是指压缩包密码……这个密码不是存放在C:\Windows\System32\config\SAM,要如何提取?  详情 回复 发表于 3 天前
回复

使用道具 举报

91#
发表于 3 天前 来自手机 | 只看该作者
谢谢分享
回复

使用道具 举报

90#
发表于 3 天前 | 只看该作者
本帖最后由 nnail 于 2025-12-1 18:40 编辑
834772509 发表于 2025-12-1 17:24
EXEC !"%ProgramFiles%\DriverIndexer\DriverIndexer.exe"  install "%ProgramFiles%\Driver\net.7z"
其 ...

明白了,差别在要提供驱动包而不是自动搜索。
如果我把驱动包定位到C:\Windows\System32\DriverStore\,但没有压缩包,它会自动搜索安装吗?还有一点应该也没法搜索密码吧?
这两点要是改进一下应该就完全可以取代了!大家都看好这个软件,希望能更进一步,加油!

点评

安装离线系统中的驱动有专门的命令:DriverIndexer.exe install-offline C:\ 其中C:\也可省略不写表示自动搜索系统盘。指定压缩包密码在后面加 -p 密码 就可以  详情 回复 发表于 3 天前
回复

使用道具 举报

89#
 楼主| 发表于 3 天前 来自手机 | 只看该作者
nnail 发表于 2025-12-1 15:26
我在PE里是这样的:EXEC "%ProgramFiles%\DriverIndexer\DriverIndexer.exe" -h

你的要如何写?

EXEC !"%ProgramFiles%\DriverIndexer\DriverIndexer.exe"  install "%ProgramFiles%\Driver\net.7z"
其中"%ProgramFiles%\Driver\net.7z"换成实际的驱动包路径(!表示隐藏运行)

点评

明白了,差别在要提供驱动包而不是自动搜索。 如果我把驱动包定位到C:\Windows\System32\DriverStore\,但没有压缩包,它会自动搜索安装吗?  详情 回复 发表于 3 天前
回复

使用道具 举报

88#
发表于 3 天前 | 只看该作者
nnail 发表于 2025-12-1 17:13
Win11设备管理器里就可以一键加载驱动,Win10虽然不能在设备管理器里加载,但可以Dism++安装完还没重启时 ...

学习了,win11这个一键加载驱动还真没发现,dism++以前也用导入驱动,但是出了一次问题后就没有用这方法了,都是在系统正常启动后再去驱动的。
回复

使用道具 举报

87#
发表于 3 天前 | 只看该作者
ql1307096 发表于 2025-12-1 16:59
试了下导出驱动成一个exe,以后重装系统直接运行一下exe就可以恢复驱动了、

Win11设备管理器里就可以一键加载驱动,Win10虽然不能在设备管理器里加载,但可以Dism++安装完还没重启时用Dism++添加驱动也是一键完成,而且成功率更高,我电脑的指纹驱动在管理器里加载有时会不成功,但用Dism++添加驱动不会出现这种情况!

点评

学习了,win11这个一键加载驱动还真没发现,dism++以前也用导入驱动,但是出了一次问题后就没有用这方法了,都是在系统正常启动后再去驱动的。  详情 回复 发表于 3 天前
回复

使用道具 举报

86#
发表于 3 天前 | 只看该作者
试了下导出驱动成一个exe,以后重装系统直接运行一下exe就可以恢复驱动了、

点评

Win11设备管理器里就可以一键加载驱动,Win10虽然不能在设备管理器里加载,但可以Dism++安装完还没重启时用Dism++添加驱动也是一键完成,而且成功率更高,我电脑的指纹驱动在管理器里加载有时会不成功,但用Dism++添  详情 回复 发表于 3 天前
回复

使用道具 举报

85#
发表于 3 天前 | 只看该作者
834772509 发表于 2025-12-1 12:29
功能方面可以取代,只是没有界面都是命令

我在PE里是这样的:EXEC "%ProgramFiles%\DriverIndexer\DriverIndexer.exe" -h

你的要如何写?

点评

EXEC !"%ProgramFiles%\DriverIndexer\DriverIndexer.exe" install "%ProgramFiles%\Driver\net.7z" 其中"%ProgramFiles%\Driver\net.7z"换成实际的驱动包路径(!表示隐藏运行)  详情 回复 发表于 3 天前
回复

使用道具 举报

84#
发表于 3 天前 | 只看该作者
一直在用,必须支持
回复

使用道具 举报

83#
发表于 3 天前 | 只看该作者
更新了,要是能有ui就更好了
回复

使用道具 举报

82#
 楼主| 发表于 3 天前 来自手机 | 只看该作者
nnail 发表于 2025-12-1 10:41
你这个能取代Lightning的DrvInde.exe吗?

试了好像不能取代DrvInde.exe,还是我不会用?

功能方面可以取代,只是没有界面都是命令

点评

我在PE里是这样的:EXEC "%ProgramFiles%\DriverIndexer\DriverIndexer.exe" -h 你的要如何写?  详情 回复 发表于 3 天前
回复

使用道具 举报

81#
发表于 3 天前 | 只看该作者
多谢分享。
回复

使用道具 举报

80#
发表于 3 天前 | 只看该作者
本帖最后由 nnail 于 2025-12-1 11:24 编辑

你这个能取代Lightning的DrvInde.exe吗?

试了好像不能取代DrvInde.exe,还是我不会用?

点评

功能方面可以取代,只是没有界面都是命令  详情 回复 发表于 3 天前
回复

使用道具 举报

79#
发表于 3 天前 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

78#
发表于 6 天前 | 只看该作者
感谢分享 收藏备用
回复

使用道具 举报

77#
发表于 7 天前 | 只看该作者
SHA
回复

使用道具 举报

76#
发表于 7 天前 | 只看该作者
2.0比1.1更方便了,好用,支持楼主。
回复

使用道具 举报

75#
发表于 7 天前 | 只看该作者
感谢更新分享!
回复

使用道具 举报

74#
发表于 7 天前 来自手机 | 只看该作者
834772509 发表于 2025-11-27 17:32
V2.0.0 更新日志
新增


感谢大佬更新分享!
回复

使用道具 举报

73#
 楼主| 发表于 7 天前 | 只看该作者
V2.0.0 更新日志
新增
  • 驱动程序管理,支持在线/离线导入/导出和查看
  • 驱动程序索引结构、驱动程序签名和其他字段
  • 用于弹出无驱动设备虚拟 CD-ROM 驱动器的命令和选项
  • 设备扫描命令
  • 用于安装离线系统驱动程序的命令
  • 驱动程序和索引文件匹配验证
  • 新增强制安装驱动程序的选项
  • 命令行程序提示符
  • 支持多种语言:繁体中文
更改
  • 使用 setup API 解析 INF 文件
  • 使用 setup API 获取硬件信息
  • 当驱动程序和索引不匹配时,自动生成索引
  • DEBUG 选项功能现在设置为调试选项;原有的 DEBUG 输出日志已更改为日志选项
  • 7-Zip 更新至 25.1.0.0
修复
  • 通过指定硬件 ID 参数(原为 INF 硬件 ID)改进了驱动程序安装
  • 改进了驱动程序匹配算法
  • 改进了兼容设备信息的重复匹配
  • 提高了驱动程序匹配性能
  • 改进了索引文件字段
  • 改进了内部错误处理逻辑(使用 anyhow)
  • 改进了本地化文本
  • 改进了驱动程序类别、版本和日期的大小写提取
移除
- Devcon 程序

点评

感谢大佬更新分享!  详情 回复 发表于 7 天前
回复

使用道具 举报

72#
 楼主| 发表于 2025-7-17 12:39:46 来自手机 | 只看该作者
令狐大虾 发表于 2025-7-3 00:53
最新1.10版本无法使用请楼主检查一下

显示什么信息?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-12-4 12:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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