2012-07-10 78 views
0

我已经创建了一个安装我的应用程序和MS Postscript驱动程序的MSI软件包(使用InstallShield-IS)。我的问题主要集中在我整体安装过程中的postscript驱动程序安装部分。我创建了一个IS自定义操作,以在安装MS Postscript驱动程序的正确时间运行命令文件(.cmd)。命令文件包含以下rundll32行: rundll32 printui.dll, PrintUIEntry /ia /m "AppX PS" /h "x64" /v "Type 3 - User Mode" /f "c:\(install)\afprint.inf" /F "%windir%\inf\ntprint.inf"如何在安装打印机驱动程序期间避免使用Windows安全保护盒

上述工作很好地接受了我被微软警告框所要求的用户输入的事实。该框包含标题:Windows无法验证此驱动程序软件的发布者。我可以选择“无论如何安装这个驱动程序软件”选项,整个过程都可以正常工作。我的确研究过这个问题,即使我在PrintUIEntry方法中添加“运行安静”开关,似乎也没有办法避免这种警告。显然,我需要签署我的驱动程序以避开安全框,但是在哪里?我在这里没有二进制代码。我的安装使用一个自定义INF文件,该文件只是委托给Microsoft(通过ntprint.inf)进行Postscript驱动程序安装。 Postscript驱动程序已经在OS上。我只提供一个PPD文件。我需要签署什么是我的主要问题?由于我不熟悉驱动程序签名,我该如何做到这一点?

我在Windows 2008 R2 x64上运行这个。

这里是我的INF副本afprint.inf(这是小):

[Version] 
Signature="$Windows NT$" 
Provider=%AF% 
ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318} 
Class=Printer 
DriverVer=05/17/2007,1.0.0.1 

[Manufacturer] 
%AF%=Arbfile,NTamd64 

[Arbfile] 
"AppX PS" = AFCLIENT,, 

[Arbfile.NTamd64] 
"AppX PS" = AFCLIENT,, 

[OEM URLS] 
"Arbfile" = "http://www.arbfile.org" 

[AFCLIENT] 
[email protected] 
DataFile=AFCLIENT.PPD 
DataSection=PSCRIPT_DATA 
Include=NTPRINT.INF 
Needs=PSCRIPT.OEM,PSCRIPT_DATA 

[DestinationDirs] 
DefaultDestDir=66000 

[Strings] 
AF="Arbfile" 

感谢您的帮助

回答

0

添加CatalogFile指令您inf文件的[Version]部分,使用inf2cat来生成一个cat文件,然后使用signtool签署cat文件。

如果您使用由Microsoft交叉签名的证书,则不会显示安装程序安全警告。您可以在WDK中找到inf2catsigntool

+0

您的回答是正确的。我确实已经验证了inf2cat和signtool。为了测试目的,我使用了自签名证书并获得了相同的警告框。关于证书被MS交叉签名的必要性的信息不错。我将从Thawte订购一个真正的代码签名证书,然后再试一次。 – 2012-07-30 19:29:46

+0

订购了Thawte的代码签名证书并使用signtool签署了我的cat文件。这确实有诀窍。我仍然得到一个安全对话框,但没有像以前那样发出红色警告。 – 2012-08-22 13:22:24

相关问题