通用打印故障排除 - 调试打印错误
概述
用户在使用通用打印时可能会遇到的一些问题示例。
- 最终用户无法在其 Windows 设备上添加打印机。
- 用户正在尝试打印文档,但打印机上没有任何打印内容。
- 打印选项和/或打印质量存在问题。
本文重点介绍调试用户尝试打印但打印机上没有打印内容的问题。 本文档中的步骤与 打印作业的阶段内联。
步骤 0:通用打印门户 - 检查打印作业是否已成功排队?
打印管理员通过 通用打印门户集中访问所有打印机。 打印管理员应检查的第一件事是 – 打印作业是否甚至在通用打印门户上可见。 为此,请按以下步骤操作:
- 打开 通用打印门户 并使用打印管理员凭据登录。
- 转到列出所有打印机的页面。
- 搜索相应的打印机并单击它。
- 转到打印机的“作业”页,查看作业发生的情况。
方案 1:作业不在“作业”视图中
如果用户最近打印了(不到 10 天),并且相应的打印作业甚至无法在门户中显示,则很可能该作业在用户的设备上失败。
步骤 1-1:检查通用打印中的打印机状态和配置
在 通用打印门户中,首先检查用户尝试打印的打印机共享。
- 转到 “打印机共享”页
- 找到相应的打印机共享并单击其名称。
- 转到
Access control
打印机共享的页面,并确保给定用户仍具有访问权限。 - 转到
Overview
打印机共享的页面,然后单击Printer name
。 - 打印机:
Status
如果状态为Stopped
“状态”,则用户可能无法将作业发送到打印机。 - 打印机:
Is accepting jobs
如果值为“否”,则用户可能无法将作业发送到打印机。
步骤 1-2:检查用户是否具有访问通用打印的合格许可证
确保用户拥有一个 符合通用打印条件的许可证
步骤 1-3:对用户的 Windows 设备进行故障排除
从基本检查开始,如下所示:
- 用户的 Windows 设备是否有权访问 Internet?
- 是否有防火墙阻止客户端访问通用打印 URL?
- 验证用户的 Windows 设备是否仍连接到 Microsoft Entra ID。
如果所有配置都正常,则可能需要 收集网络跟踪。 收集网络跟踪时,请确保从用户的设备中删除打印机,重新添加打印机,然后将其打印到该设备。
在网络跟踪中,可以查找可能失败的调用。 通常,API 调用的 HTTPS 响应代码或“响应”部分可以提供所需的信息,以了解为什么将打印作业上传到通用打印失败。
如果作业的网络调用也未显示在 Fiddler 中,请确保已正确配置 Fiddler。 如果它仍然未显示,则可能需要联系Microsoft 支持部门。 支持团队可以帮助从用户设备上的 Windows 后台处理程序收集更多日志。
方案 2:作业位于“作业”视图中。 打印机通过通用打印连接器注册。
如果打印作业位于通用打印门户中,则可以利用 “作业”页上 的信息来了解打印作业可能发生的情况。 以下是一些示例:
Status
的打印作业提供有关作业在旅程中的位置的信息。 了解不同的 打印作业状态值以及它们如何映射到打印作业旅程。Status code
:如果打印作业具有Aborted
状态,则列下Status code
可能有错误代码。 了解 打印作业错误代码。- 其他列:
Created time
并Upload time
指示作业已在通用打印服务中排队,打印机通知已准备就绪。 对于连接器,通用打印服务会将通知发送到连接器(代表打印机与通用打印服务通信)。 如果连接器正忙于处理同一打印机上的另一个作业,则它会等待作业完成,然后再对通知执行进一步操作。Printer acknowledged time
,Download time
由Final time
连接器(或打印机)更新。 如果这些字段为空,则需要在连接器上进行故障排除。
步骤 2-1:确定要排除故障的打印作业。
给定打印机上可能有多个作业需要调查。 但有时,报告的作业可能不是有问题的作业。 它可以是可能在作业之前发送的作业。
若要标识要调试的打印作业,请转到 通用打印门户,并转到相应的打印机的“打印作业”页。 按以下顺序查找作业:
- 检查用户报告的作业是否具有
Status
Aborted
。 如果中止,请检查相应的Status Code
。- 很可能会有非零值。 单击下面的
Status Code
值,查找错误和相应的缓解措施。 - 如果状态代码为零,则最类似于作业的发送时间很长,并且可能在连接器打印和更新其状态之前过期。 要求用户再次打印到同一打印机。
- 如果需要,请进一步调查文档中提到的内容。
- 很可能会有非零值。 单击下面的
- 如果作业的状态为
Processing
,请使用此作业的 ID 进一步调查。 - 如果作业的状态为
Pending
,则查找仍具有状态Processing
的最新作业。 - 如果没有处于处理状态的作业,则选取最早
Pending
的作业。
步骤 2-2:标识与通用打印打印机关联的连接器。
在连接器上进行调试之前,打印管理员可能需要标识与给定打印机关联的连接器。 为此,请按以下步骤操作:
- 在通用打印门户上,使用打印管理员凭据登录,并转到特定的打印机页面。
- 在打印机的页面中,转到
Connectors
该页。 可在此处查看连接器名称。 - 单击连接器的名称可查看更多详细信息。
- 可以使用该字段
Hostname
访问托管连接器的设备。
若要对其他打印管理员进行故障排除,请登录到连接器主机(例如使用远程桌面)。
步骤 2-3:检查连接器基础知识。
确保连接器已正确设置,并且有权访问通用打印服务 URL。 连接器故障排除清单
如果组织使用代理,请仔细查看 连接器先决条件 。 由于连接器进程作为服务运行,因此不会使用用户级自动代理设置。 必须对所有通用打印服务终结点显式允许访问,或根据文档使用配置。
步骤 2-4:打印机是拉取打印队列还是已从另一个打印供应商启用安全发布?
请参阅有关如何配置连接器以模拟和将给定作业的用户信息传递给 Windows 后台处理程序的文档。 请注意,传递连接器上的用户信息仅适用于混合Microsoft Entra ID 环境。
建议与打印供应商合作,进一步排查此问题。
步骤 2-4-1:安全发布和挂起的作业
对于具有安全发布的打印机,作业可能会在用户检索到打印机之前保持等待状态。 在用户释放打印作业之前,其状态将保持不变 Processing
。 同一打印机上的其他作业将继续处于 Pending
状态。
步骤 2-5:打印管理控制台 - 检查打印机是否联机并打印
在连接器主机上,启动 Windows 打印管理控制台并检查相应的打印机状态。
- 在连接器主机上启动 Windows 打印管理控制台。
- 查找可能正在处理打印作业时出现问题的打印机。
- 检查打印机是否处于错误状态。 如果是,这可能是作业中止或停滞在云队列中的原因。
- 检查打印机上的队列长度(挂起的作业数)。 如果队列长度较大且未清除,则可能需要取消队列中的所有作业并清除。 这可能会中止停滞的作业并打开队列。
- 通过将“测试打印”页直接从连接器主机发送到打印机来测试打印机。
步骤 2-6:连接器主机上的任务管理器
任务管理器有助于查看连接器主机上运行的进程和资源消耗。
- 在
Windows Task Manager
连接器主机上启动。 - 转到
Services
选项卡。 - 查找服务 -
Printfliterpipelinesvc
和printisolationhost.exe
。 如果这些服务的任何实例具有较高的内存脚印(超过几个 MB)。 这可能表示打印机驱动程序的内存泄漏。 选择这些进程并单击End Process
。 它将清除资源,这些服务将自动重启。 - 监视此打印机上的新作业流。
步骤 2-7:连接器主机上事件查看器
在连接器本身上,可以执行以下任务,以查看作业的状态或已Aborted
发生的情况Processing
。
在连接器主机上打开 Windows 事件查看器,
- 检查连接器事件:打开连接器事件日志,方法是转到“应用程序和服务日志->Microsoft-Windows-PrintConnector>> -> 操作”节点。 在这里,可以看到连接器上执行的各种打印作业,以及发生故障的阶段。 若要检查工作旅程,请执行以下操作:
Find
单击右侧面板中的选项- 放置从通用打印门户获取的作业 ID
- 单击“查找下一步”将帮助你浏览特定于此作业的日志。
- 甚至可以查看有关此作业日志的其他事件,以检查可能同时发生的一些其他内容。
- 在事件日志中查找的一些有趣的事件 ID 包括:
- 事件 ID 10 或任务类别“PrintSpooling”
- 事件 ID 102 提供 PrintJobSummary 以及连接器收到的作业的详细信息
- 事件 ID 104 或任务类别“TraceWarning”
- 事件 ID 106 或任务类别“TraceError”
- 检查 Windows 打印后台处理程序事件:保持事件查看器并打开打印日志。 转到“Windows Logs-Application>”节点。
Filter the Current Log
单击并单击Event Source
下拉列表,向下滚动列表并选择Universal Print
。 单击“确定”。- 如果打印作业出错,可以在“打印错误”文档下找到其更多详细信息。