创建新用户配置文件时,组策略打印机首选项无法设置默认打印机

本文提供了一种解决方法,说明组策略打印机首选项无法设置默认打印机的问题。

原始 KB 数: 2787598

现象

当用户首次登录时,使用组策略首选项创建新的打印机映射,并将该打印机设置为默认打印机在 Windows Vista 及更高客户端上失败。 已成功创建打印机映射,但未在注册表中设置为默认打印机。 打印机首选项跟踪显示以下错误:

<VALUE>打印机名称无效。</VALUE></PROPERTY>-</INSTANCE>
事件 ID 4098 记录在应用程序日志中:
日志名称: 应用程序
来源:组策略打印机
日期: <DateTime>
事件 ID:4098
任务类别:(2)
级别: 警告
关键字:经典
用户: 系统
计算机: server.fabrikam.com
说明:
“定义打印机 {XXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXX}”组策略对象中的用户“HP 打印机”首选项项不适用,因为它失败,错误代码为“0x80070709打印机名称无效”。 此错误已取消。

原因

组策略首选项会在用户登录完成之前创建网络打印机映射并调用 SetDefaultPrinterW() API。 此时,尚未创建 Software\Microsoft\Windows NT\CurrentVersion\Devices 下的网络连接。 因此,当它调用 SetDefaultPrinterW() API 时,它会失败,错误代码0x80070709“打印机名称无效”。

打印机连接注册表值仅在收到SERVICE_CONTROL_SESSIONCHANGE通知时由后台处理程序服务创建。 只有在用户登录完成后才会发送此通知消息。 因此,当组策略首选项首次调用 SetDefaultPrinterW()时,将不会设置默认打印机。

解决方法

目前没有可用于此问题的修补程序。 可能的解决方法包括:

  1. 使用 GPUPDATE /FORCE 命令在登录后强制组策略更新
  2. 在用户登录后重启打印后台处理程序(后台处理程序)服务
  3. 使用计划任务在登录后运行脚本以定义默认打印机
  4. 使用注册表首选项配置默认打印机

数据收集

如果需要Microsoft支持方面的帮助,建议按照使用 TSS 收集信息中的 步骤收集用户体验问题来收集信息。