0

我创建了一个 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 无法验证此驱动程序软件的发布者。我可以选择“仍然安装此驱动程序软件”选项,整个过程确实有效。我确实对此进行了研究,即使我将“运行安静”开关添加到 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"

谢谢你的帮助

4

1 回答 1

0

CatalogFile指令添加到文件的部分,[Version]用于生成文件,然后用于对文件进行签名。infinf2catcatsigntoolcat

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

您可以在 WDK中找到inf2cat和。signtool

于 2012-07-25T12:59:15.620 回答