从命令行安装驱动程序(.inf)文件

22

我正在使用Windows 8.1操作系统。 我需要从命令行安装一个驱动程序文件(.inf文件)。我应该使用哪个命令?

我知道还有许多其他方法可以安装.inf文件,但我必须通过命令行安装。

请帮助我,谢谢!


https://dev59.com/ekbRa4cB1Zd3GeqP3suS - Nagaraj S
3个回答

20

格兰杰的评论同样适用于Windows 7。根据微软的说法,PnPUtil(PnPUtil.exe)已经包含在从Windows Vista开始的每个版本中。

它对于没有默认安装程序(右键单击“安装”不适用于它们)的设备驱动程序非常有用。

pnputil -i -a<driverinf>


如何在Win10上安装未签名的驱动程序? - undefined

17

设备驱动程序的默认方式是:

pnputil -i -a <driverinf>

传统驱动程序无法使用 pnputil 进行安装, 必须使用 LaunchINFSectionEx-Call

我测试过以下内容,并且它可以在从 Windows 2000 到 Windows 10、2012R2、2016、2019 的多个驱动程序上正常工作。

rundll32.exe advpack.dll,LaunchINFSectionEx ykmd.inf,Yubico64_Install.NT,,4,N

注意使用正确的部分

当没有[DefaultInstall]-Section时,必须使用inf-文件的正确部分。这在大多数答案中缺失。在驱动程序的inf-文件中查找并 使用正确的部分 (例如我的示例中为“Yubico64_Install.NT”)。使用错误的部分不会提示错误。在我的示例中,我使用Quiet模式,无UI(4)和Never reboot(N)通过GPO自动安装驱动程序。所有选项都在此处详细记录:

https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa768006(v%3Dvs.85)


2

有许多变体......以及较新版本的Windows的许多复杂性。

但首先,尝试这样做:

rundll32.exe advpack.dll,LaunchINFSectionEx myinf.inf,,c:\temp\mydata.cab,36

注意:要小心旧链接,建议使用“setupapi”而不是“advpack”。 您绝对需要advpack.dll。


64位的Windows怎么样?是rundll64.exe吗? - mojuba
1
没有“rundll64.exe”这个东西。你试过“rundll32”了吗?发生了什么事? - FoggyDay
还没有,但我知道驱动程序安装的较低级别API需要主exe根据主机系统是32位还是64位。我正在尝试以编程方式安装驱动程序:http://msdn.microsoft.com/en-us/library/windows/hardware/ff541255(v=vs.85).aspx - mojuba
1
说到较新版本的Windows。在Hyper-V Server 2012 r1 & r2中,命令行为:pnputil -i -a <driverinf> - Granger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接