You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

.inf驱动文件中的OEM段是否存在占位符未替换的bug?如何获取驱动名称?

.inf驱动文件中的OEM段是否存在占位符未替换的bug?如何获取驱动名称?

别担心,这可不是什么占位符没替换的bug!这种带%的变量写法是Windows驱动inf文件的标准设计,我来给你拆解明白~

首先,为啥会出现%PRINTER1%这类内容?

这些带%的标记是inf文件的字符串占位符,它们实际对应的驱动名称都定义在inf文件的[Strings]段落里。你可以翻到文件末尾(或者直接搜索[Strings]关键词),就能看到类似这样的定义:

[Strings]
OEM = "HP Inc."
PRINTER1 = "HP Color LaserJet Pro M453-4 Series"

系统读取inf文件时,会自动把%PRINTER1%替换成后面的实际字符串,所以这是正常的模块化写法,不是遗漏的占位符。

接下来,给你几个获取驱动名称的实用方法:

  • 直接找字符串定义:优先查看inf文件里的[Strings]段,找到PRINTER1对应的文本,那就是驱动的官方显示名称;
  • 检查配套文件:如果找不到[Strings]段,或者变量没定义,大概率这个inf是依赖同文件夹下的其他配套inf/资源文件的,你可以看看同目录里的其他文件,搜索相同的变量名;
  • 跳过名称,直接用inf安装:针对你用PowerShell手动安装的需求,其实完全可以不用纠结驱动名称——用pnputil命令(需管理员权限)直接安装:
    pnputil /add-driver "C:\你的驱动路径\目标驱动.inf" /install
    
    这个命令会自动识别inf里的硬件ID(比如你提到的USBPRINT\HPHP_Color_LaserJet_4596),完成驱动安装,不需要手动输入名称。

另外,你提到自动安装失败,大概率是系统没自动匹配到正确的硬件ID,手动指定inf的思路是对的。如果pnputil安装后需要配置打印机,可以先通过Get-PrinterDriver命令查看已安装的驱动名称,再用Add-PrinterDriverAdd-Printer完成后续配置。

备注:内容来源于stack exchange,提问作者npr_se

火山引擎 最新活动