Driver Package Installer (DPInst) with the "/s" (silent) flag fails to install a signed driver on Windows XP. The certificate is a valid one (an Authenticode certificate) but not a WHQL one. How can I fix this problem?

有帮助吗?

解决方案

DPInst has two "silencing" flags -- /q (Quiet) and /sw (Supress Wizard). /q implies Quiet but also probably (I didn't test!) sets DI_QUIETINSTALL when issuing the DIF_REMOVE request. Apparently this makes the SetupAPI library (of Windows XP) go "they're trying to go sneaky on me!" and reject the installation if the certificate isn't a treasured WHQL[*] one.

Note that DPInst itself ignores the certificate's validity when the /lm (Legacy Mode) flag is set, but it's the underlying Windows that'll reject it still.

The solution is to use the /sw flag (along with /lm).

BTW, I'm still yet to check the implications of this - e.g. does Windows pop-up a "STOP Installation" prompt box under some configurations? I'll test and update this answer accordingly.

The "STOP Installation" prompt" looks like:

Sole window displayed under some circumstances for commandline flag

[*] ... or another Windows System Component Verification certificate, but that's besides the point.

其他提示

If the device driver is signed, you need to add its publisher to trusted publisher list. follow steps mentioned in below article

http://www.richud.com/wiki/Windows_7_Broken_Trusted_Publisher_Certificates_signed_Drivers_fix

after this silent installation will work fine.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top