我使用 Inno Setup 安装程序来安装我的 Win32 应用程序,它主要安装在 Windows 10 上。有一些 USB 加密狗(基本上是 USB 串行端口)的驱动程序要与我的应用程序一起安装。驱动程序由文件和目录组成:
amd64 (folder)
x86 (folder)
dfu.cat
dfu.inf
usbserial.cat
usbserial.inf
我添加了
dpinst32.exe
和 dpinst64.exe
到司机的文件夹,我调用dpinst32
或 dpinst64
(基于 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
最佳答案
/S
Dpinst
的选项完全隐藏与操作系统的所有交互。您遇到的问题是您的操作系统还不信任制造商并且没有完成安装。如果您使用参数 /SW
运行 Dpinst例如,您将看到此窗口。
这就是安装在某些计算机上有效而在其他计算机上无效的原因。
一种解决方案是为您的驱动程序提取证书,请调用 certmgr.msc
从控制台并检查“受信任的发布者”下,您应该找到制造商并右键单击能够将证书导出为 yourCert.cer
文件。然后,您可以作为管理员调用 certutil.exe -addstore "TrustedPublisher" yourCert.cer
在您调用 Dpinst /S
之前从控制台在您的目标系统上。
由于您已经为操作系统提供了证书,因此该窗口不应再弹出,您可以运行 dpinst
完全沉默。
关于windows - dpinst 无法静默安装驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60227108/