【问题标题】:How to avoid Windows Security box during printer driver installation如何在打印机驱动程序安装期间避免出现 Windows 安全框
【发布时间】:2012-07-10 19:18:39
【问题描述】:

我创建了一个 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"

感谢您的帮助

【问题讨论】:

    标签: printing driver signing postscript rundll32


    【解决方案1】:

    CatalogFile 指令添加到inf 文件的[Version] 部分,使用inf2cat 生成cat 文件,然后使用signtoolcat 文件进行签名。

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

    您可以在 WDK 中找到 inf2catsigntool

    【讨论】:

    • 你的答案是对的。我已经验证了 inf2cat 和 signtool。我使用自签名证书进行测试,并得到了相同的警告框。关于证书必须由 MS 交叉签名的信息的好消息。我会从 Thawte 订购一个真正的代码签名证书,然后再试一次。
    • 从 Thawte 订购了代码签名证书,并使用 signtool 签署了我的 cat 文件。这确实起到了作用。我仍然收到一个安全对话框,但没有像以前那样出现红色警告。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多