首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过pnputil安装驱动程序

通过pnputil安装驱动程序
EN

Stack Overflow用户
提问于 2016-06-01 11:07:16
回答 4查看 33.4K关注 0票数 6

我正在尝试通过NSIS ( .inf )安装一个.inf文件。

安装本身工作平稳,但Windows使用其内部发布的名称(递增号oemxxx.inf)安装驱动程序。

如何让pnputil.exe将已发布的名称作为返回值(供以后使用)?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-06-06 08:36:39

我为在nsis上发表的drivername所做的是一个很好的解决办法:

  1. 通过pnputil /e > driverlist_before.txt将安装的驱动程序列表放到文本文件中。
  2. 通过pnputil /i /a mydriver.inf安装新驱动程序
  3. 通过pnputil /e > driverlist_after.txt将安装的驱动程序列表放到文本文件中。
  4. 将以下代码放入.cmd文件并通过nsExec执行

GetPublishedDrivername.cmd含量

代码语言:javascript
运行
复制
@echo off
:: look at differences between files and just keep the line with the oem info
fc mydriverlist_before.txt mydriverlist_after.txt | findstr /C:"oem" > diff.txt
:: cut result and keep second part               "           oem##.inf"
for /f "tokens1,2 delims=:" %%a in (diff.txt) do (
  if "%%a"=="Published name " set info=%%b
)
:: get rid of leading spaces                     "oem##.inf"
for /f "tokens=* delims= " %%a in ("%info%") do set info=%%a
:: split "oem##.inf" and keep first part         "oem##"
for /f "tokens=1,2 delims=." %%a in ("%info%") do set info=%%a 
:: get of the oem part                           "##"
set info=%info:oem=%
:: convert string into int value
set /a info=%info%
del diff.txt
:: return number as result
exit /b %info%

这个脚本当然可以优化,每一个输入都是受欢迎的。

票数 3
EN

Stack Overflow用户

发布于 2016-06-02 05:11:53

我认为是不可能的。下面列出了PnPUtil的所有命令:

微软PnP实用程序

用法:

pnputil.exe -f x -i

示例:

pnputil.exe -a a:\usbcam\USBCAM.INF ->添加由USBCAM.INF指定的包

pnputil.exe -a c:\drivers*.inf ->添加c:\drivers中的所有包

pnputil.exe -i -a a:\usbcam\USBCAM.INF ->添加和安装驱动程序包

pnputil.exe -e ->枚举所有第三方包

pnputil.exe -d oem0.inf ->删除包oem0.inf

pnputil.exe -f -d oem.inf ->强制删除包oem0.inf

pnputil.exe -?->这个使用屏幕

因此,您无法提取该信息并将其传递给NSIS:

票数 1
EN

Stack Overflow用户

发布于 2017-04-12 19:33:14

Pnputil不会这么做,但是您可以通过以下操作获得关于oem(number).inf文件的详细信息

代码语言:javascript
运行
复制
     dism /online /get-driverinfo /driver:oem(number).inf

你会得到一个清单,如:

部署映像服务和管理工具版本: 10.0.14393.0

图片版本: 10.0.14393.0

驱动程序包信息:

发布名称: oem3.inf驱动程序存储路径: C:\Windows\System32\DriverStore\FileRepository\us003.inf_amd64_daf71ec003559d2a\us003.inf类名:打印机类描述:打印机类GUID:{4D36E979-E325-11CE-BFC1-08002BE10318}日期: 9/14/2015版本: 3.0.3.0启动临界:否

架构驱动程序: x86

代码语言:javascript
运行
复制
Manufacturer : Samsung
Description : Samsung Universal Print Driver 3
Architecture : x86
Hardware ID : USBPRINT\SamsungML-21500EDE
Service Name : 
Compatible IDs : 
Exclude IDs : 

Manufacturer : Samsung
Description : Samsung Universal Print Driver 3
Architecture : x86
Hardware ID : WSDPRINT\SamsungML-21500EDE
Service Name : 
Compatible IDs : 
Exclude IDs : 

Manufacturer : Samsung
Description : Samsung Universal Print Driver 3
Architecture : x86
Hardware ID : USBPRINT\SamsungSCX-6x45_Seri402B
Service Name : 
Compatible IDs : 
Exclude IDs : 

……和其他许多人一起

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37566915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档