如何在Windows XP上预安装自签名USB驱动程序?

时间:2013-05-16 21:10:08

标签: installer windows-xp usb driver

我正在尝试在我们的公司工作站上预装一些用于医疗设备的USB驱动程序。不幸的是,这些驱动程序没有签名。根据在这里和其他地方进行的一些研究,我使用我创建的证书自行签署了这些驱动程序:

makecert -r -pe -n "CN=Self Root CA" -b 01/01/2006 -e 01/01/2099 -eku 1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.6 -sv selfcert.pvk selfcert.cer

我将证书添加到“受信任的根CA”和“受信任的发布者CA”并签署了驱动程序:

signtool sign /f selfcert.pfx /p password /uw /t http://timestamp.verisign.com/scripts/timstamp.dll /v C:\gendex\fusiondexis.cat

我添加了'/ uw'参数,因为“Windows系统组件验证”(1.3.6.1.4.1.311.10.3.6)和“代码签名”(1.3.6.1.5.5.7.3.3)存在于证书,因此似乎是合适的。

然后我用signtool验证了签名:

signtool.exe verify /pa /v /c C:\gendex\fusiondexis.cat C:\gendex\fusiondexis.inf

驱动程序文件被复制到'C:\ gendex',我更新了注册表项'DevicePath',以便在搜索驱动程序文件时包含此路径。但是,当我插入设备时,Windows会显示“添加新硬件向导”,这需要管理员输入其凭据。如果我不这样做,设备将保持无法识别的状态,如果我这样做 - 它可以正常工作。

我一直在试图弄明白这一整天。任何帮助,将不胜感激!感谢。

1 个答案:

答案 0 :(得分:1)

确保已将selfcert.cer(自我根CA)添加到本地计算机商店,而不是添加到用户特定商店。你可以使用

CertMgr.exe -add -c selfcert.cer -s -r localMachine AuthRoot

我大约8年前为我的客户开发了解决方案,但它仍然有效。我当时使用的旧版SignTool没有/ uw开关。我只用了

SignTool.exe signwizard /v LXT52Xxp.cat

对于疑难解答,我建议您设置详细的SetupAPI日志(请参阅herehere)。它将显示从哪个驱动器获取哪个驱动器以及驱动程序的排名是否与“Microsoft签名”相同。

相关问题