我正在尝试通过NSIS ( .inf )安装一个.inf文件。
安装本身工作平稳,但Windows使用其内部发布的名称(递增号oemxxx.inf)安装驱动程序。
如何让pnputil.exe将已发布的名称作为返回值(供以后使用)?
发布于 2016-06-06 08:36:39
我为在nsis上发表的drivername所做的是一个很好的解决办法:
pnputil /e > driverlist_before.txt
将安装的驱动程序列表放到文本文件中。pnputil /i /a mydriver.inf
安装新驱动程序pnputil /e > driverlist_after.txt
将安装的驱动程序列表放到文本文件中。nsExec
执行GetPublishedDrivername.cmd
含量
@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%
这个脚本当然可以优化,每一个输入都是受欢迎的。
发布于 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:
发布于 2017-04-12 19:33:14
Pnputil不会这么做,但是您可以通过以下操作获得关于oem(number).inf文件的详细信息
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
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 :
……和其他许多人一起
https://stackoverflow.com/questions/37566915
复制相似问题