dpinst не может установить драйвер тихо - PullRequest
1 голос
/ 14 февраля 2020

Я использую установщик 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) из моего Установщик.

Однако на некоторых компьютерах драйверы не установлены.

Как правильно установить драйверы с помощью моего установщика?

РЕДАКТИРОВАТЬ: Это журнал из 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

1 Ответ

1 голос
/ 19 февраля 2020

Опция /S Dpinst полностью скрывает все взаимодействие с операционной системой. Проблема в том, что ваша операционная система пока не доверяет производителю и не завершает установку. Например, если вы запустите Dpinst с параметром /SW, вы увидите это окно.

Это будет причиной, по которой установка работает на некоторых компьютерах, а на других - нет.

Одним из решений является извлечение сертификатов для ваших драйверов, вызов certmgr.msc из консоли и проверка в разделе «Доверенные издатели», вы должны найти производителя и, щелкнув правой кнопкой мыши, сможете экспортировать сертификат как yourCert.cer файл. Затем вы можете как администратор вызвать certutil.exe -addstore "TrustedPublisher" yourCert.cer с консоли, прежде чем позвонить Dpinst /S в вашей целевой системе.

Поскольку вы уже дали операционной системе сертификат, окно больше не должно появляться, и вы можете запустить dpinst в совершенно бесшумном режиме.

...