【问题标题】:Install inf driver with VBScript on Windows 7在 Windows 7 上使用 VBScript 安装 inf 驱动程序
【发布时间】:2014-03-10 13:17:56
【问题描述】:

我正在尝试编写一个在 Windows 7 上安装 USB/Ethernet adapter 的 VBS 脚本。

我有这个设备的 .INF 文件。

我第一次尝试:

Dim WshShell, res
Set WshShell = WScript.CreateObject("WScript.Shell")
res = WshShell.Run(WshShell.ExpandEnvironmentStrings( "%SystemRoot%" ) & "\System32\InfDefaultInstall.exe "" C:\Users\Me\Driver.inf """, 1, True)

res 等于 2。

然后我搜索了另一种方法并I found

Dim WshShell, res
Set WshShell = WScript.CreateObject("WScript.Shell")
res = WshShell.Run(WshShell.ExpandEnvironmentStrings( "%SystemRoot%" ) & "\System32\rundll32.exe SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 ""Driver.inf""", 1, True)

res 等于 0,但我弹出错误消息 Installation failed

我的代码有什么问题?作为记录,脚本以管理权限启动。

编辑

我尝试直接在提示符下执行第一个命令,得到:The inf file you selected does not support this method of installation.

提示符中的第二个命令没有任何反应。

这很奇怪,因为我可以在启动设备管理器并选择 inf 文件时“手动”安装驱动程序(带有警告:Windows can't verify the publisher of this driver software.):

安装驱动程序后,类安装程序属性会显示NetCfgx.dll,NetClassInstaller。可以用吗?

我也尝试使用 devcon,但没有成功(程序返回 devcon.exe 失败)。

【问题讨论】:

    标签: windows installation driver inf


    【解决方案1】:

    这样怎么样:

    1)如果您使用的是“Windows 7”,为什么不利用操作系统中内置的驱动程序预登台实用程序? W7 附带一个名为“PNPUTIL”的驱动程序实用程序。发出这样的命令将添加驱动程序:

    PNPUTIL -a "X:\Path to Driver File\Driver.inf"
    

    这将处理 INF 并将 CAT/SYS/INF(以及任何 DLL、EXE 等)复制到“DriverStore”文件夹中...这是 Windows 存储所有内置驱动程序的同一位置以供自动使用即插即用安装。

    2)如果这不是您的选择,请查找“DPInst.exe”(或 64 位系统的“DPInst64.exe”)。这些作为 Windows PDK 的一部分提供(可从 Microsoft 免费获得),并将处理您放置文件的位置中的所有 INF 并尝试预暂存它们。此方法尝试将文件复制到不那么可靠的“驱动程序”、“CatRoot”和“INF”位置……并且有时无法将所需的 DLL 复制到“System32”文件夹等……但 99%时间(对于简单的驱动程序)它只是工作。如果您找不到它们,我可以安排将它们发送给您。

    自从我找到上面的选项 (1) 以来,这一直是我最好的朋友。我使用选项 2 在我们的基本图像上安装佳能 USB 打印机和扫描仪等...所以我知道这也有效。

    【讨论】:

    • 感谢您的回复。我试过 PNPU​​TIL 但它没有安装我的驱动程序。这很奇怪,因为它给出了成功消息。实际上 DPInst 有效。我想我会使用这个解决方案。
    【解决方案2】:

    我遇到了同样的问题,并通过明确使用ASCII 版本的InstallHinfSection 入口点解决了它:

    res = WshShell.Run("%Comspec% /C %SystemRoot%\System32\rundll32.exe SETUPAPI.DLL,InstallHinfSectionA DefaultInstall 132 ""Driver.inf""", 1, True)
    

    不过可能有更好的解决方案(比如提示脚本引擎使用哪种 unicode/ASCII 风格)。

    此外,我使用的是 EN-US 系统,因此这种解决方法可能会在更多异国情调的语言环境中失败。

    【讨论】:

      【解决方案3】:

      试试这个:

      res = WshShell.Run("%Comspec% /C %SystemRoot%\System32\rundll32.exe SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 ""Driver.inf""", 1, True)
      

      【讨论】:

      • 没有不行。我收到了同样的信息:Installation failed.
      猜你喜欢
      • 1970-01-01
      • 2015-12-27
      • 2011-12-21
      • 2023-03-20
      • 2011-09-11
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多