【问题标题】:dpinst fails to install driver silentlydpinst 无法静默安装驱动程序
【发布时间】:2020-02-14 13:16:26
【问题描述】:

我使用 Inno Setup 安装程序安装我的 Win32 应用程序,它主要安装在 Windows 10 上。有一些 USB 加密狗(基本上是 USB 串行端口)的驱动程序要与我的应用程序一起安装。驱动由文件和目录组成:

amd64 (folder)
x86 (folder)
dfu.cat
dfu.inf
usbserial.cat
usbserial.inf

我将dpinst32.exedpinst64.exe 添加到驱动程序的文件夹中,并从我的安装程序中调用dpinst32dpinst64(基于Windows 版本)。

但是,在某些 PC 上,我最终没有安装驱动程序。

我的安装程序安装驱动程序的正确方法是什么?

编辑:这是来自dpinst64.exe /Q /c的日志

INFO:   Option set: dumping log info to console.
INFO:   Current working directory: 'F:\windrv'
INFO:   Running on path 'F:\windrv'
INFO:   No valid 'dpinst.xml' file provided.
INFO:   Install option set: Running in quiet mode. Suppressing Wizard and OS popups.
INFO:   Found driver package: 'F:\windrv\dfu.inf'.
INFO:   Found driver package: 'F:\windrv\usbserial.inf'.
INFO:   Preinstalling 'f:\windrv\dfu.inf' ...
INFO:   ENTER:  DriverPackagePreinstallW
INFO:   RETURN: DriverPackagePreinstallW  (0xE0000242)
INFO:   Preinstalling 'f:\windrv\usbserial.inf' ...
INFO:   ENTER:  DriverPackagePreinstallW
INFO:   RETURN: DriverPackagePreinstallW  (0xE0000242)
INFO:   Returning with code 0x80020000

【问题讨论】:

  • 仅供参考:这是我使用的 inno 设置指令:
  • 文件名:"{tmp}\windrv\dpinst32.exe";参数:“/S /Q”;检查:不是 IsWin64 文件名:“{tmp}\windrv\dpinst64.exe”;参数:“/S /Q”;检查:IsWin64
  • 所以我可以在 inno 设置日志中看到,在一台计算机上,调用 dpinst64.exe /S /Q 返回 2147614720 (0x80020000) 退出代码。任何的想法?如果我手动(通过双击)运行 dpinst64.exe,它会安装驱动程序。然后,下一次,当我的安装程序启动并调用 dpinst64.exe /S /Q 时,返回码是 512(这可能意味着驱动程序已经安装)。那么 0x80020000 意味着什么 dpinst 在静默模式下启动时会失败?
  • 问题出在dpinst64.exe,而不是Inno Setup。
  • 当操作系统(尚未)信任制造商时,我遇到了与 dpinst 类似的问题,安装未完成但您没有收到错误消息。尝试使用 /SW 而不是 /S 运行 dpinst,如果弹出一个窗口,这可能是您的问题。

标签: windows installation inno-setup dpinst


【解决方案1】:

Dpinst/S 选项完全隐藏了与操作系统的所有交互。您遇到的问题是您的操作系统还没有信任制造商并且没有完成安装。例如,如果您使用参数/SW 运行 Dpinst,您将看到此窗口。

这将是安装在某些计算机上有效而在其他计算机上无效的原因。

一种解决方案是为您的驱动程序提取证书,从控制台调用 certmgr.msc 并在“受信任的发布者”下检查,您应该找到制造商并通过右键单击能够将证书导出为 yourCert.cer文件。然后,您可以作为管理员从控制台调用 certutil.exe -addstore "TrustedPublisher" yourCert.cer,然后再在目标系统上调用 Dpinst /S

由于您已经为操作系统提供了证书,因此该窗口不应再弹出,您可以完全无声地运行dpinst

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 2010-12-07
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多