尝试使用别名 (CNAME) 资源记录连接打印机时出现错误消息: Windows 无法连接到打印机

本文提供了在尝试使用 (CNAME) 资源记录的别名连接到打印机时发生的错误的解决方案。

原始产品版本:   Windows 10-所有版本,Windows Server 2012 R2
原始 KB 数:   979602

症状

当您尝试使用别名 (CNAME) 资源记录为运行 Windows Server 2008 R2 的打印服务器或运行 Windows 7 且承载打印机的客户端计算机连接打印机时,您将收到以下错误消息:

Windows 无法连接到打印机。 请检查打印机名称,再试一次。 如果这是网络打印机,请确保打印机已打开,并且打印机地址正确。

此外,还会在网络监视器跟踪中看到以下内容:

[客户端请求] 34 4.421875 {MSRPC:9,SMB2:8,TCP:2,IPv4: 1} IP 地址 IP 地址 Winspool Winspool: RpcOpenPrinterEx Request,Printer = \ \ Printsvr\Microsoft XPS Document Writer
[server response] 37 4.843750 {MSRPC:9,SMB2:8,TCP:2,IPv4: 1} IP 地址 IP 地址 Winspool Winspool: RpcOpenPrinterEx Response,Status = ERROR_INVALID_PRINTER_NAME

原因

此问题可能是由非群集计算机的后台处理程序代码的优化更改导致的。 加载操作系统时,打印后台处理程序服务将加载计算机的本地名称和 DNS 缓存中的其他本地名称。 打印后台处理程序服务使用本地名称来服务请求。 因此,该服务必须获取网络的访问权限,然后查询诸如别名 (CNAME) 资源记录之类的名称。 此行为会降低服务的性能。

解决方法

若要解决此问题,请使用以下命令在运行 Windows 2008 Server R2 且由别名 (CNAME) 资源记录访问的打印服务器上添加注册表项:

reg add HKLM\SYSTEM\CurrentControlSet\Control\Print /v DnsOnWire /t REG_DWORD /d 1

备注

  • 某些第三方 DNS 提供商需要使用 QWord。 如果存在 DWord,请将其删除。
  • 此注册表项会降低性能。 因此,我们建议您仅在必须由 (CNAME) 资源记录的别名访问的打印服务器上添加此注册表项。 修改注册表项后,请重新启动打印后台处理程序服务以使该项生效。

更多信息

使用网络负载平衡 (NLB) 技术或域名系统 (DNS 的负载平衡打印机不支持 DNS) 轮循机制功能。 本文中提到的解决方法仅适用于一个运行 Windows Server 2008 R2 的打印服务器的别名 (CNAME) 资源 record,该记录只引用一个服务器。