如何摆脱“您信任这台打印机”消息框并通过 GPO 添加我的打印机?

Arv*_*wen 9 active-directory printer group-policy network-printer windows-server-2012-r2

  • 工作站:Windows 7 (x64) [安装打印机目标]
  • 服务器:Windows Server 2012 R2 (x64) [Active Directory、打印服务器]

我一直在试图通过组策略安装这台打印机!出于某种原因,我根本无法使用 GPO 部署这台打印机。我尝试将其设置为通过Computer Configuration->Policies->Windows Settings->Deployed Printers、以及Computer Configuration->Preferences->Control Panel Settings->Printers和进行部署User Configuration->Preferences->Control Panel Settings->Printers。我还尝试通过我的打印服务器管理控制台通过用户和/或计算机定位来添加它。我已经尝试了各种方法,但没有任何效果。我遵循了一堆教程并观看了一堆视频,以确保我没有遗漏任何东西,但这确实是一项简单的任务(理论上)......它只是行不通。

在尝试调试问题时,我发现如果我去\\myserver\并双击打印机,它会尝试安装打印机,然后提示我安装带有 UAC 类型提示的驱动程序。 在此处输入图片说明

我已经尝试了所有我能想到的方法来让该消息框停止弹出。我深入研究并发现,如果我要编辑一个名为Point and Print Restrictionsat的 GPO Computer Configuration->Policies->Administrative Templates->PrintersUser Configuration->Policies->Administrative Templates->Control Panel->Printers您可以尝试将策略设置为DisabledEnabled并选择Do not show warning or elevation prompt策略设置底部列出的两个安全提示。

嗯,这也是一个半身像...

我确实发现,如果我尝试通过转到 unc 并输入我的管理员凭据来手动安装打印机,它将从服务器下载驱动程序并安装打印机(如预期)。如果用户尝试删除打印机并以某种方式成功,只要他们注销并重新登录 GPO 就会执行我想要的操作并重新添加打印机。但是它要求我第一次在每台 PC 上手动添加它。

对此进行测试,然后从 GPO 中删除打印机,然后注销并再次登录。我可以运行命令printui /s /t2来调出一个 GUI,它允许我轻松删除已安装的驱动程序,使 PC 恢复到原始状态(要求提供管理员凭据)。我还了解到,打印机存储在位于HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Connections. 当我尝试删除打印机时,它告诉我不能,我只是转到该注册表项并删除了我试图删除的打印机的 GUID 键。然后只是重新启动了 Print Spooler 服务,然后它就消失了。这并没有帮助我到达我想要的地方,但它有助于在调试问题期间移除打印机。

我在某处读到可能原因是某种类型的 Windows 安全更新改变了某些东西。它的发布是因为某篇文章展示了如果您可以使用一台打印机,您将如何使用整个网络。当用户连接到打印机并下载驱动程序时,它会安装注入的软件并在机器上运行,等等......

我的主要目标是能够使用我正在使用的 GPO 将此打印机部署到此 OU 中的一组用户。但是我尝试的一切都需要管理员登录才能完成(至少是第一次)。有谁知道为什么我的打印机不会通过 GPO 自动添加自己,以及我如何获得“你信任这台打印机吗?” 消息要走?

Sli*_*ick 11

“修复”是从打印机制造商处下载受信任的、可识别包的打印驱动程序;但是,由于并非所有制造商都会生产这些驱动程序,因此我在此处找到了一个解决方法:Cannon Forum - Package-Aware Print Drivers(注意:这不适用于未签名的驱动程序,但有很多教程可供自己使用- 签署打印驱动程序。)

以下是解决该问题的步骤:

  1. 在打印服务器上安装所需的驱动程序
  2. 请注意在“Packaged”列下列出了“false”的所有驱动程序。所有这些都必须修改才能通过组策略进行部署。
  3. 编辑打印服务器上的注册表并转到以下位置:
    • 对于 64 位驱动程序: HKLM\System\CurrentControlSet\Control\Print\Enviroments\ Windowsx64 \Drivers\Version- X \{Driver Name}
    • 对于 32 位驱动程序: HKLM\System\CurrentControlSet\Control\Print\Enviroments\ Windows NT x86 \Drivers\Version- X \{Driver Name}
    • 其中“X”是打印驱动程序“类型”,通常是“3”或“4”
  4. 通过将 1 添加到当前设置的任何值来编辑名为“PrinterDriverAttributes”的键。(例如:如果当前值为“6”,则将其更改为“7”。)这将使打印服务器相信这些驱动程序已打包。
  5. 对每个未列为“打包”驱动程序的驱动程序执行此操作。
  6. 重新启动打印服务器。
  7. 现在一切都应该通过组策略进行部署(前提是您正确配置了所有常用的 GPO 设置)。

我正在自己部署此修复程序;但是,由于它需要重新启动打印服务器,我直到今晚才能对其进行测试,因为我们的打印服务器还运行一些联网应用程序。

注册表编辑的另一种解决方案是编辑打印机驱动程序 INF 文件并添加以下内容:

对于 32 位驱动程序:

[PrinterPackageInstallation.x86]
PackageAware=TRUE
Run Code Online (Sandbox Code Playgroud)

对于 64 位驱动程序

[PrinterPackageInstallation.amd64]
PackageAware=TRUE
Run Code Online (Sandbox Code Playgroud)

如果您决定编辑 INF 文件,则可以更轻松地从打印服务器中删除驱动程序,从全新下载中编辑 INF 文件,然后安装编辑后的驱动程序。

除了这个,仔细检查组策略设置Point and Print RestrictionsPackage Point and print - Approved Servers

背景信息

Microsoft 安全公告 MS16-087详细介绍了一个安全问题,即流氓打印服务器可以通过“中间人”式攻击注入恶意代码。安全更新 KB3170455于 2016 年 7 月 12 日发布以修复它,然后它会干扰来自打印服务器的打印驱动程序的分发。

  • 如果第 4 步看起来很奇怪,那是因为 PrinterDriverAttributes 实际上是一个位数组,其中每一位表示不同的设置。最后一位(最低位)指示驱动程序是否是驱动程序包的一部分。因此,将值增加 1 将修改该字段中的最后一位。请参阅:https://msdn.microsoft.com/en-us/library/windows/desktop/dd162507(v=vs.85).aspx (3认同)