如何在打印机驱动程序安装期间避免Windows安全框

时间:2012-07-10 19:18:40

标签: printing driver signing postscript rundll32

我创建了一个MSI包(使用InstallShield-IS),它将我的应用程序与MS Postscript驱动程序一起安装。我的问题主要集中在我整个安装过程的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"

以上作品非常接受我被需要用户输入的Microsoft警告框所困扰的事实。该框包含标题:Windows无法验证此驱动程序软件的发布者。我可以选择“无论如何安装此驱动程序软件”选项,整个过程确实有效。我做了研究,即使我将“run quiet”开关添加到PrintUIEntry方法,也似乎没有办法避免警告。显然,我需要签署我的驱动程序,以避免安全框,但在哪里?我这里没有二进制代码。我的安装使用一个自定义INF文件,只需委托给Microsoft(通过ntprint.inf)进行Postscript驱动安装。 Postscript驱动程序已经在操作系统上。我只提供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]
CopyFiles=@AFCLIENT.PPD
DataFile=AFCLIENT.PPD
DataSection=PSCRIPT_DATA
Include=NTPRINT.INF
Needs=PSCRIPT.OEM,PSCRIPT_DATA

[DestinationDirs]
DefaultDestDir=66000

[Strings]
AF="Arbfile"

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

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

如果您使用由Microsoft交叉签名的证书,则不会显示安装程序安全警告。

您可以在WDK中找到inf2catsigntool