我正试图在我们的企业工作站上预装一些医疗设备的USB驱动程序。不幸的是,这些驱动程序没有签名。根据一些研究,这里和其他地方一样,我用我自己创建的证书自签发这些驱动程序:如何在Windows XP上预安装自签名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将显示“添加新硬件向导”,该向导需要管理员输入其凭据。如果我不这样做,该设备仍处于无法识别的状态,如果我这样做 - 它工作正常。
我一直在砸我的脑袋,试图弄清楚这一整天。任何帮助,将不胜感激!谢谢。
其实我猜我做的都对。为什么它不起作用的唯一原因是Windows的驱动程序存储中有一个旧的副本(INF和PNF在C:\ WINDOWS \ inf和CAT在C:\ WINDOWS \ system32 \ CatRoot \ {... })。一旦我删除了这些文件,Windows就从C:\ gendex中检索到正确的文件,并将它们放在驱动程序存储区中,然后运行!感谢您的帮助,奥列格!这将为我和我的部门节省大量的工作。 – user1910600
@ user1910600:不客气!我很高兴能否帮助你。 – Oleg