本文提供了使用别名(CNAME)资源记录尝试连接到打印机时发生的错误的解决方案。
原始 KB 数: 979602
现象
尝试使用运行 Windows Server 2008 R2 的打印服务器的别名(CNAME)资源记录或运行 Windows 7 和承载打印机的客户端计算机连接到打印机时,会收到以下错误消息:
Windows 无法连接到打印机。 检查打印机名称,然后重试。 如果这是网络打印机,请确保打印机处于打开状态,并且打印机地址正确。
此外,网络监视器跟踪中将看到以下内容:
[客户端请求] 34 4.421875 {MSRPC:9, SMB2:8, TCP:2, IPv4:1} IP 地址 IP 地址 Winspool Winspool:RpcOpenPrinterEx 请求, 打印机 = \printsvr\Microsoft XPS 文档编写器 [服务器响应] 37 4.843750 {MSRPC:9, SMB2:8, TCP:2, IPv4:1} IP 地址 Winspool Winspool:RpcOpenPrinterEx 响应, 状态 = ERROR_INVALID_PRINTER_NAME
原因
由于对非群集计算机的后台处理程序代码进行了优化更改,因此可能会出现此问题。 当操作系统加载时,Print Spooler 服务将加载计算机的本地名称以及 DNS 缓存中的其他本地名称。 Print Spooler 服务使用本地名称来服务请求。 因此,服务必须获取对网络的访问权限,然后查询别名(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)轮循机制功能对打印机进行负载均衡。 本文中提到的解决方法仅适用于运行 Windows Server 2008 R2 的一台打印服务器通过仅引用该服务器一个服务器的别名(CNAME)资源记录进行访问的情况。
数据收集
如果需要Microsoft支持方面的帮助,建议按照使用 TSS 收集信息中的 步骤收集用户体验问题来收集信息。