首页 > 综合 > 正文

cmd查打印机状态用什么命令?Windows命令提示符排查打印问题实操

2026-10-24 22:42:40 · 斜风细雨网 · 休闲 · 阅读 235

打印机不出纸、查查打操任务卡在队列里、打印共享打印机突然离线,机状很多人第一反应是态用提示题实打开“设置”里翻半天。其实在 Windows 上,什命用命令提示符(cmd)可以更快看到打印机列表、命令默认打印机、符排端口和打印任务队列。印问需要先说清楚:cmd 本身没有一个“万能命令”能直接告诉你“打印机现在是查查打操否在线、墨水还剩多少”,打印它擅长的机状是查询系统里已注册的打印机配置和后台打印任务。真正判断硬件在线状态,态用提示题实还要结合驱动、什命端口和打印机自身的命令网络或 USB 连接来看。

下面按“先看有哪些打印机,符排再看默认和端口,最后看卡住的任务”的顺序讲,每一步都给出可直接复制的命令和失败时的排查方向。文中路径以 Windows 10/11 常见界面为准,不同版本或精简系统可能略有差异,以你本机实际界面和官方说明为准。

一、先列出系统里的打印机:wmic 与 PowerShell 两条路

最常被提到的是 wmic printer get name,default,portname,workoffline。在 cmd 里执行后,会列出每台打印机的名称、是否为默认、所用端口以及是否处于“脱机使用打印机”状态。这里的 workoffline 如果是 TRUE,说明系统层面把它标成了脱机,哪怕机器本身通电,任务也可能不往下走。注意:较新的 Windows 版本已逐步弃用 wmic,如果提示“不是内部或外部命令”,说明该组件被移除或未安装,这时改用 PowerShell 更稳妥。

在 cmd 中可以直接调用 PowerShell:powershell -Command "Get-Printer | Format-Table Name,DriverName,PortName,PrinterStatus"。Get-Printer 会返回打印机名称、驱动、端口和状态字段。PrinterStatus 常见值有 Normal、Offline、Error、Paused 等,但它反映的是后台打印程序记录的状态,不一定等于硬件实时状态。如果这里显示 Normal 却打不出来,问题往往在端口、网络或队列,而不是“打印机没被识别”。

只想快速知道默认打印机是谁,可以用 wmic printer where default='TRUE' get name,或在 PowerShell 里执行 Get-CimInstance Win32_Printer | Where-Object { $_.Default -eq $true} | Select-Object Name。默认打印机选错,是“点了打印却没反应”的常见原因之一,尤其是装过虚拟 PDF 打印机之后。

二、看清端口和连接方式,判断问题出在哪一层

拿到打印机名称后,重点看 PortName。常见形式有 USB001、IP_192.168.1.50、WSD 开头的长串、以及 \\电脑名\打印机名 这类共享路径。USB 端口出问题,多半是线材、接口或驱动;IP 端口出问题,通常是打印机 IP 变了、网段不通或防火墙拦截;WSD 端口不稳定时,改成标准 TCP/IP 端口往往更可靠。命令只能告诉你“系统认为它连在哪”,不能替你 ping 通。

如果端口是 IP 形式,可以在 cmd 里直接测试连通性:ping 192.168.1.50(换成你打印机实际 IP)。能 ping 通说明网络层可达,接着再确认打印机是否开启了 RAW 9100 或 LPR 打印服务;ping 不通就先查网线、Wi-Fi、IP 是否被路由器重新分配。共享打印机则可以先 ping 共享主机名,再用 net view \\主机名 看共享列表是否可见,看不到通常是网络发现、权限或凭据问题。

想更细地看驱动和端口绑定关系,可用 powershell -Command "Get-PrinterPort | Format-Table Name,PrinterHostAddress,PortNumber"。PrinterHostAddress 就是端口指向的地址,PortNumber 常见为 9100 或 515。把这个地址和你打印机面板上显示的 IP 对一下,不一致就说明 IP 变了,需要改端口或给打印机设固定 IP。这一步能解决相当一部分“昨天还能打、今天不行”的情况。

三、任务卡住时,用命令看队列并清理

打印任务堆积会让后续任务全部排队。cmd 里可以先用 powershell -Command "Get-PrintJob -PrinterName '你的打印机名'" 查看当前队列,返回内容包括任务 ID、文档名、状态和提交时间。如果状态长期停在 Printing、Error 或 Spooling,基本可以判断队列卡死。注意打印机名含空格时要加引号,名字要和 Get-Printer 列出的完全一致。

清理单个任务:powershell -Command "Remove-PrintJob -PrinterName '你的打印机名' -ID 任务ID"。清空全部任务:powershell -Command "Get-PrintJob -PrinterName '你的打印机名' | Remove-PrintJob"。如果提示拒绝访问,通常需要以管理员身份运行 cmd。若命令清不掉,说明后台打印程序(Print Spooler)卡住了,可在“服务”里重启 Print Spooler,或执行 net stop spooler 后再 net start spooler,重启前先保存好正在编辑的文档。

还有一种情况:命令显示队列是空的,但打印机面板上还有残留任务。这属于打印机内存里的任务,需要在打印机屏幕上取消作业,或断电重启打印机。命令管的是 Windows 这一侧,管不到打印机固件内部,这个边界要分清。

四、几个容易踩的坑与核对清单

第一,把“脱机使用打印机”当成硬件故障。它只是系统设置,在“设备和打印机”里右键取消勾选即可。第二,用 wmic 报错就以为命令写错了,其实可能是系统已移除该工具,换 PowerShell 即可。第三,只看状态不看端口,导致 IP 变更这类问题被忽略。第四,共享打印机在凭据过期后,命令能列出设备但无法打印,需要重新连接或清理凭据。

建议的核对顺序是:先用 Get-Printer 确认设备、默认项和状态,再看 PortName 与 PrinterHostAddress 是否和实际一致,接着 ping 地址或共享主机,最后用 Get-PrintJob 看队列并清理。四步走完,多数“cmd 查打印机状态”相关的疑问都能定位到具体环节。

最后提醒:命令查询的是 Windows 记录的状态,不能替代厂商驱动自带的诊断工具,也不能判断墨量、卡纸、定影等硬件细节。涉及政务、医院等场景的打印故障,若影响业务办理,仍应以现场技术人员和官方支持渠道的判断为准。把上面几条命令存成一个 txt 备用,下次打印机罢工时,能省下不少翻设置的时间。