admin 管理员组

文章数量: 1184232

一、故障描述

某次医疗用户紧急应对大面积核酸检查,远程访问医院内网医疗系统,最终核对信息后,要连接2台打印机分别打印条形码和对象信息,经多方考察终选择订购本司云桌面产品,在使用过程中,用户反馈,使用本地客户端连接云桌面后,在桌面内调用打印机执行打印任务,无法完成打印机打印。具体情况如下:

现场核酸检测医生所使用打印机直连本地终端电脑,每次登陆云桌面以后,外部打印机就显示为 脱机状态 ,云桌面内可以正常发送打印任务到外部打印机,但是本地终端打印机因为脱机状态无法正常打印,这时候如果把云桌面断开,打印机会自动恢复为连接,正常开始打印。

二、故障分析

1)远程登录用户环境后检查发现:

本地打印机映射云桌面正常:

在设备管理器里可正常观察到打印机设备,驱动显示当前设备工作正常;且打印机设备可正常显示在【打印机和扫描仪】列表中。

在“设备管理器”:通用串行总线控制器列表中检查打印机或未知设备;如果未看到打印机或任何其他未知设备,请以手动方式重新安装 VMware Tools。
如果打印机在列表中但显示为脱机状态:右键单击打印机并取消选择脱机使用,尝试打印。如果打印机仍然不工作,请重新删除添加打印机设备,还不行重新安装驱动
如果设备列表中有未知设备,请重新安装打印机驱动程序和软件。

2)云桌面内操作打印机,打印测试也,任务可发送到本地终端打印机任务窗口,只是本地显示为脱机状态,文档处于待打印状态;打开打印机任务窗口,打印常规属性栏里“脱机使用打印机”已勾选,但并未执行脱机打印操作;

3)尝试重新启动打印服务程序,清理所有的打印机任务后重启打印机,“取消所有文档”,均未果,打印机依然显示“脱机”状态。

4)查看Horizon client的相关打印机日志:

022-04-04T11:13:48.893Z In(05) host-30644 VMware integrated print log level: info.
2022-04-04T11:13:48.895Z In(05) host-30644 Attempting to print datatype : 0, to printer [HP LaserJet Professional P1108].
2022-04-04T11:13:48.999Z In(05) host-30644 EMFFont::InstallFonts, Hit the end of EMF page.
2022-04-04T11:13:49.000Z In(05) host-30644 EMFPrintHelper::PrintOnePage, printable area: width: 4800, height: 6827.
2022-04-04T11:13:49.014Z In(05) host-30644 EMFPrintHelper::Print, Finished to print job.
2022-04-04T11:13:49.014Z In(05) host-30644 Successfully print data to printer HP LaserJet Professional P1108.
……
2022-04-04T12:05:27.150Z In(05) host-27868 VMware integrated print log level: info.
2022-04-04T12:05:27.152Z In(05) host-27868 Attempting to print datatype : 0, to printer [TSC TTP-244 Pro].
2022-04-04T12:05:27.443Z In(05) host-27868 EMFFont::InstallFonts, Hit the end of EMF page.
2022-04-04T12:05:27.469Z In(05) host-27868 EMFPrintHelper::PrintOnePage, printable area: width: 400, height: 240.
2022-04-04T12:05:27.514Z In(05) host-27868 EMFPrintHelper::Print, Finished to print job.
2022-04-04T12:05:27.514Z In(05) host-27868 Successfully print data to printer TSC TTP-244 Pro.
……
2022-04-04T11:41:57.236Z In(05) host-28280 VMware integrated print log level: info.
2022-04-04T11:41:57.865Z In(05) host-27716 TransportRpcMgr::OnCreateInstance, Request for TransportRpcPlugin to be created.
2022-04-04T11:41:57.900Z In(05) host-27716 TransportRpcPlugin::OnReady, The VDPService channel is ready.
2022-04-04T11:41:57.933Z In(05) host-27716 PipeServer::SpawnChildProcess, spawning child process[29144] succeeded, cmd=C:\Program Files (x86)\VMware\VMware Horizon View Client\x64\vmware-print-redir-client.exe 6124 6120.
2022-04-04T11:41:57.933Z In(05) host-28172 PipeServer::PipeListeningProc,start working thread...
2022-04-04T12:08:07.476Z In(05) host-27716 TransportRpcPlugin::OnNotReady, The VDPService channel is not ready.
2022-04-04T12:08:07.479Z In(05) host-27716 TransportRpcMgr::OnDestroyInstance, Request for TransportRpcPlugin to be destroyed.
2022-04-04T12:08:07.566Z Er(02) host-28172 IOUtil::ReadData, Failed to read datafrom source, 109.
2022-04-04T12:08:07.566Z Er(02) host-28172 PipeServer::ReadPipe, ReadData failed, error=109.
2022-04-04T12:08:07.566Z Er(02) host-28172 PipeServer::PipeListeningProc, error happns,break out.
2022-04-04T12:08:07.566Z In(05) host-28172 PipeServer::PipeListeningProc,exit work thread!
2022-04-04T12:08:07.566Z Er(02) host-28172 TransportRpcPlugin::SendData, Something went wrong while calling CreateMessage.
2022-04-04T12:08:07.566Z Er(02) host-28172 PipeServer::SendTask, SendData failed.
2022-04-04T12:08:07.566Z Er(02) host-28172 PipeServer::PipeListeningProc, Send "TASK_TYPE_STOP_PRINTER_SERVER" failed.
……
2022-04-04T11:41:58.039Z In(05) host-20308 VMware integrated print log level: info.
2022-04-04T11:41:58.039Z In(05) host-20308 InitializeTransportPlugin, Setting TransportInstance as 7FF74E6F5670 and role as 0.
2022-04-04T11:41:58.039Z In(05) host-20308 InitializeTransportPlugin, Setting TransportInstance role as client.
2022-04-04T11:41:58.040Z In(05) host-29692 PipeClient::PipeListeningProc,start working thread...
2022-04-04T12:08:07.478Z In(05) host-29692 PipeClient::PipeListeningProc, pipe broken,break out.
2022-04-04T12:08:07.480Z In(05) host-29692 PipeClient::PipeListeningProc,exit work thread!

VDM.log

2022-04-04T04:55:55.450+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] Usbd service is running in non-FIPS mode.
2022-04-04T04:55:55.450+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] Starting...
2022-04-04T04:55:55.451+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] mmfw_GetNamedPipeName: Named Pipe name is \\.\pipe\s.1063.2.28.10@12888@25492
2022-04-04T04:55:55.456+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] ViewUsbService started
2022-04-04T04:55:55.459+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] enter poll loop
2022-04-04T04:55:55.460+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] mmfw_PipeRead: called (client @ 2166713DE70)
2022-04-04T04:55:55.460+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks]Begin to require the service
2022-04-04T04:55:55.460+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] Ready to send require service's response to client
2022-04-04T04:55:55.460+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] mmfw_PipeRead: called (client @ 2166713DE70)
2022-04-04T04:55:55.461+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] mmfw_PipeRead: called (client @ 2166713DE70)
2022-04-04T04:55:55.466+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] mmfw_PipeRead: called (client @ 2166713DE70)
2022-04-04T04:55:55.702+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] mmfw_PipeRead: called (client @ 2166713DE70)
2022-04-04T04:55:55.725+08:00 INFO  (6394-0E38) <MessageFrameWorkShare> [vmware-remotemks] Remote USB status reported, state: available
2022-04-04T04:55:55.727+08:00 INFO  (6394-0E38) <MessageFrameWorkShare> [vmware-remotemks] Remote USB uemTimeouts: 0
2022-04-04T04:55:55.728+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] mmfw_PipeRead: called (client @ 2166713DE70)
2022-04-04T04:55:56.728+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] mmfw_PipeRead: called (client @ 2166713DE70)
2022-04-04T04:55:56.728+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] mmfw_PipeRead: called (client @ 2166713DE70)
2022-04-04T04:55:56.730+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] mmfw_PipeRead: called (client @ 2166713DE70)
2022-04-04T04:55:56.731+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] Claimed 'TSC Auto ID USB Printing Support' device, PlugNo: 1
2022-04-04T04:55:56.750+08:00 INFO  (6394-0E38) <MessageFrameWorkShare> [vmware-remotemks] Remote USB Uem status is processing, state: Completed
2022-04-04T04:55:56.949+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] mmfw_PipeRead: called (client @ 2166713DE70)
2022-04-04T04:55:56.953+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] Feature HID optimization is enabled (ver: 1.1).
2022-04-04T04:55:56.953+08:00 INFO  (6394-4A94) <vmware-usbd> [vmware-remotemks] Device configuration, PlugNo: 1, Config Index: 0
  1. 由于用户在云桌面内安装了同样的打印机驱动程序,且非官方的,是互联网通用的那种;在现场测试时,其中一个打印机,重新安装桌面内打印机驱动后测试正常;另一个安装失败。

6)云桌面对于USB打印机映射(VMware Integrated Printing)有2种方式,且该方式适用于Windows、Mac、Linux 和 Chrome 的 Horizon Client 用户及 HTML Access 用户可以从远程桌面打印到其客户端计算机上可用的任何本地或网络打印机。通过客户端打印机重定向,用户可以从远程桌面 打印到其客户端计算机上 可用 任何本地或网络 打印机 。VMware Integrated Printing 在远程桌面上支持以下2种类型的打印机驱动程序。

1》本机打印机驱动程序 (Native Printer Driver, NPD )。在远程桌面上,您必须安装与客户端打印机驱动程序相同的打印机驱动程序。NPD 仅支持 v3 打印机。

2》通用打印机驱动程序 (Universal Printer Driver, UPD )。您无需在远程桌面上安装任何驱动程序。

注: 默认情况下,如果在 Horizon Agent 计算机上安装本机驱动程序,则会使用 NPD。否则,将使用 UPD。也可以通过配置组策略设置来选择要在远程桌面上使用的打印机驱动程序类型。云桌面内打开,控制面板 > 硬件和声音 > 设备和打印机,右键单击虚拟打印机,然后从上下文菜单中选择打印机属性。在常规选项卡上,如果型号为 VMware 通用 EMF 驱动程序,则会使用 UPD。否则,将使用 NPD。更多参见 。

三、处理

基于以上分析;由于用户现场未具备合适的打印机驱动环境;故我们采用UPD方式;当桌面连接时,无需勾选激活【连接USB设备】下拉列表下的打印机设备,直接云桌面内打印时选择虚拟打印机即可。

附录:

1)打印机日志收集:

wmic ntevent //重定向输出到文本文件,

wevtutil qe security -c:500 -rd:true -f:text > .\spool.log

本文标签: 打印机 编程 云桌面内