本文提供了一种解决方法,说明组策略打印机首选项无法设置默认打印机的问题。
原始 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()时,将不会设置默认打印机。
解决方法
目前没有可用于此问题的修补程序。 可能的解决方法包括:
- 使用
GPUPDATE /FORCE
命令在登录后强制组策略更新 - 在用户登录后重启打印后台处理程序(后台处理程序)服务
- 使用计划任务在登录后运行脚本以定义默认打印机
- 使用注册表首选项配置默认打印机
数据收集
如果需要Microsoft支持方面的帮助,建议按照使用 TSS 收集信息中的 步骤收集用户体验问题来收集信息。