尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Windows 10 打印机全攻略:从图形界面到命令行,彻底掌握设备枚举与管理

Windows 10 打印机全攻略:从图形界面到命令行,彻底掌握设备枚举与管理 1. 项目概述为什么需要列出所有已安装的打印机在日常办公或IT运维中我们经常会遇到一些看似简单却让人头疼的问题。比如公司新来的同事问你“我的电脑连不上那台彩色打印机了你能帮我看看吗”或者你自己想清理一下系统里那些早已报废、多年不用的打印机驱动却发现根本记不清到底装过哪些。这时候如果有一个快速、清晰的方法能像清点仓库库存一样把Windows 10电脑里所有“登记在册”的打印机——无论是本地USB连接的、网络共享的甚至是曾经添加过但已离线的——都罗列出来那解决问题的效率就会高得多。这个操作的核心价值在于“信息透明化”。Windows系统尤其是像Win10这样用户基数庞大的系统其打印管理功能虽然图形化但有时过于分散。你可能在“设置”里看到一部分在老式的“控制面板”里看到另一部分而一些通过脚本或组策略部署的打印机可能藏在更深的系统层面。掌握多种列举方法就等于拥有了从不同维度透视系统打印环境的能力。这对于故障排查、资产清点、标准化部署前的环境审计乃至解决一些棘手的驱动冲突问题都至关重要。接下来我将抛开那些笼统的教程以一个老运维的实际经验带你深入Win10的腹地用几种截然不同但都极其有效的方法把系统里所有的打印机“家底”翻个底朝天。我们会从最直观的图形界面开始逐步深入到更高效、更强大的命令行工具并分享一些在实战中才能积累的排查技巧和避坑指南。2. 图形化界面操作控制面板与设置应用的双重奏很多用户习惯首先在图形界面里寻找答案这是最直观的路径。在Win10中微软提供了新旧两套设置界面它们各有侧重有时信息并不完全同步。2.1 传统利器控制面板中的“设备和打印机”这是Windows系统中历史最悠久的打印机管理入口虽然微软正试图用新的“设置”应用取代它但对于打印机这类设备控制面板的视图目前仍然是最全面、信息最丰富的之一。操作路径与核心信息按下Win R键打开“运行”对话框输入control并回车即可快速启动控制面板。在控制面板中将“查看方式”改为“大图标”或“小图标”找到并点击“设备和打印机”。进入后你看到的这个窗口就是系统认为的“所有设备”的集合。在这里打印机通常分为几类显示默认打印机会有一个绿色的对勾标记。其他已安装的打印机包括本地打印机、网络打印机、无线打印机等。打印机对象你甚至可能看到一些传真设备或虚拟PDF打印机如“Microsoft Print to PDF”。注意这里显示的“打印机”严格来说是“打印机队列”或“打印机逻辑端口”。一个物理打印机如果通过不同方式如TCP/IP端口和WSD端口添加了两次这里可能会显示两个图标。它们代表的是不同的连接通道指向同一台硬件。实操心得视图的局限性这个列表默认不显示已断开连接或脱机的打印机除非你之前将它们设置为“脱机使用”。要查看所有安装过的驱动需要进入更深的菜单。关键操作入口在“设备和打印机”窗口的菜单栏点击“文件” - “服务器属性”。在弹出的窗口中切换到“驱动程序”选项卡。这里才是系统已安装的所有打印机驱动程序的“仓库”列表无论其对应的打印机队列当前是否存在。清理陈旧的驱动就在这里进行。2.2 现代界面设置中的“蓝牙和其他设备”Win10的“设置”应用提供了更现代化的界面但它在打印机信息展示上做了简化。操作路径点击“开始”菜单选择“设置”齿轮图标或直接按Win I。进入“设备” - “打印机和扫描仪”。这个界面列表非常简洁主要显示当前可用的打印机并允许你快速添加、删除或管理默认打印机。它的设计初衷是让普通用户进行最常用的操作因此隐藏了大量技术细节。图形化方法的优缺点对比方法优点缺点适用场景控制面板信息全面可管理驱动视图经典熟悉步骤稍多无法快速导出列表深度管理、驱动清理、查看所有历史安装记录设置应用界面现代操作简单快捷信息简略无法查看已断开设备详情日常快速设置默认打印机、添加新打印机对于只需要知道“我现在能用哪几台打印机”的用户“设置”应用足够。但对于IT支持人员或需要彻底排查问题的用户“控制面板”中的“服务器属性-驱动程序”列表是不可或缺的。然而这两种图形方法都无法一键导出一份清晰的、可供存档或分析的文本列表。当你需要处理大量电脑或者需要将打印机列表作为文档附件时命令行工具的优势就无可比拟了。3. 命令行与脚本利器高效枚举与信息提取当你需要重复操作、批量处理或者追求极致的效率时图形界面点击就显得力不从心了。Windows提供了强大的命令行工具可以让你用一行命令获取所需信息并且方便地输出到文件。3.1 命令提示符的坚守者WMICWMICWindows Management Instrumentation Command-line是一个功能强大的命令行管理工具虽然微软已宣布其废弃但在Win10乃至Win11的当前版本中它依然有效且非常好用。基础列举命令打开命令提示符CMD输入以下命令wmic printer get name这条命令会列出所有已安装打印机的名称是最干净的列表。获取详细信息如果你需要更多信息来做判断比如打印机的状态、是否默认、驱动名称等可以使用wmic printer get name, default, status, drivername这个命令会返回一个表格包含打印机名、是否为默认打印机、当前状态以及所使用的驱动名称。高级过滤与导出假设你只想看网络打印机或者想把列表保存到文本文件中WMIC也能轻松胜任。# 只列出网络打印机通常ShareName不为空 wmic printer where “sharename is not null” get name, sharename # 将完整打印机列表导出到D盘的printers.txt文件 wmic printer get /format:list D:\printers.txt导出的printers.txt文件内容结构清晰每项属性单独成行非常适合后续的脚本处理或文档整理。注意事项WMIC命令的执行速度取决于系统WMI服务的状态。如果系统负载高或WMI服务有问题命令可能会响应缓慢或超时。此外在一些高度精简或定制的Win10系统上WMIC组件可能被移除。3.2 新生代力量Windows PowerShellPowerShell是微软力推的下一代脚本环境和命令行工具其基于对象的管道处理能力比CMD强大得多。对于打印机枚举它提供了更现代、更灵活的Cmdlet。使用 Get-Printer Cmdlet在PowerShell建议以管理员身份运行以获取全部信息中最基本的命令是Get-Printer这行命令会输出一个表格默认包含名称、计算机名、类型、端口名等属性。信息比WMIC默认输出更丰富一些。格式化输出与信息筛选PowerShell的强大在于你可以自由控制输出什么、如何输出。# 只显示打印机名称和状态并按名称排序 Get-Printer | Select-Object Name, PrinterStatus | Sort-Object Name # 显示所有属性信息非常详细 Get-Printer | Format-List * # 查找所有“脱机”的打印机 Get-Printer | Where-Object {$_.PrinterStatus -eq “Offline”}导出为结构化文件你可以轻松地将列表导出为CSV或JSON格式方便用Excel打开或与其他系统交互。# 导出为CSV文件 Get-Printer | Export-Csv -Path “C:\PrinterList.csv” -NoTypeInformation -Encoding UTF8 # 导出为JSON文件 Get-Printer | ConvertTo-Json | Out-File “C:\PrinterList.json”CSV文件用Excel打开后你可以进行筛选、排序、数据透视等所有表格操作这对于管理成百上千台电脑的打印机资产来说是图形界面无法比拟的效率提升。命令行方法对比与选择建议工具语法特点输出灵活性适用场景与优势CMD WMIC动词-名词结构相对固定较好支持表格和列表格式导出系统兼容性极广包括老系统命令简短好记适合快速单次查询。PowerShell动词-名词结构一致性强极强可筛选、排序、格式化、导出多种格式自动化脚本的核心处理复杂查询和批量操作输出结果易于程序化处理。实操心得在大多数现代Win10电脑上我优先推荐使用PowerShell。不仅因为它是未来更因为其管道操作|让你能像搭积木一样组合命令。例如Get-Printer | Where-Object {$_.Shared -eq $true} | Export-Csv .\SharedPrinters.csv这一条命令就能直接导出所有共享打印机列表非常高效。对于需要定期收集资产信息的运维任务写一个简单的PowerShell脚本结合计划任务可以实现全自动化。4. 深入系统腹地注册表与打印服务查询当图形界面和常规命令行工具都“失灵”或者你需要探究更深层次的配置信息时就不得不触及Windows系统的核心——注册表和系统服务。这种方法技术性较强通常用于高级故障排查或开发场景。4.1 注册表中的打印机密钥Windows系统中几乎所有配置的最终归宿都是注册表。打印机的安装信息也不例外。关键注册表路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers在这个路径下每个子键对应一台已安装的打印机打印机队列。键名就是打印机的内部名称可能与显示名称略有不同。如何查看与解读按下Win R输入regedit打开注册表编辑器。操作注册表前务必谨慎错误修改可能导致系统不稳定。导航到上述路径。你可以看到一系列以打印机命名的文件夹。点击任意一个打印机文件夹右侧窗格会显示其详细配置例如Name打印机的显示名称。Port打印机使用的端口如USB001192.168.1.100_9100。Printer Driver所使用的驱动程序名称。Print Processor打印处理器通常是winprint。警告切勿随意修改或删除这些键值除非你非常清楚后果。这里只是作为信息查询的最后一招。误删可能导致打印机无法使用甚至需要重建打印后台处理程序服务。使用命令行查询注册表如果你觉得图形化浏览regedit不够高效也可以用命令来提取# 在CMD中使用reg query命令 reg query “HKLM\SYSTEM\CurrentControlSet\Control\Print\Printers” /s这个命令会递归/s列出Printers键下所有子键和值信息量巨大。通常需要配合findstr命令进行过滤例如reg query ... | findstr “Name Port”。4.2 通过打印后台处理程序服务查询打印后台处理程序Spooler服务是Windows打印功能的核心。我们也可以通过查询其内部状态来获取信息。使用Print Management Snap-in非核心方法但专业实际上微软提供了一个更专业的图形工具打印管理。按下WinR输入printmanagement.msc即可打开。在“打印服务器”-你的计算机名-“打印机”下可以看到一个非常管理化的视图。但这个工具需要单独安装“打印和文件服务”管理工具并非所有Win10版本默认都有。使用PowerShell与WMI/CIM查询Spooler更底层的方法是直接通过WMI查询打印后台处理程序相关的类。PowerShell的Get-CimInstance或Get-WmiObject旧版可以做到。# 使用CIM推荐更现代 Get-CimInstance -ClassName Win32_Printer # 使用WMI旧式但兼容性广 Get-WmiObject -Class Win32_PrinterWin32_PrinterWMI类提供了极其丰富的属性远超Get-Printercmdlet包括Location,Comment,SystemName,WorkOffline等数十个字段。这对于需要编写复杂监控脚本或集成到管理系统的场景非常有用。高级应用场景示例假设你需要监控公司所有打印机是否处于“错误”状态并自动发送警报。你可以编写一个PowerShell脚本定期查询Win32_Printer过滤PrinterStatus为特定错误码如3-5代表各种错误的打印机然后通过邮件或即时通讯工具API发送通知。这种深度集成能力是图形界面无法实现的。深度方法对比与风险提示方法信息深度风险与复杂度典型应用场景注册表查询最深包含所有原始配置数据风险高浏览需谨慎切勿随意修改驱动冲突根源分析、罕见故障排查、配置项恢复。WMI/CIM查询非常深提供面向对象的完整属性集复杂度中高需要熟悉WMI类和PowerShell企业级监控、资产管理系统集成、自动化运维脚本开发。除非必要普通用户和大多数IT支持场景应优先使用前两章介绍的方法。注册表和WMI查询是留给那些真正需要“刨根问底”的时刻或者当你怀疑系统级别的打印服务出现异常导致常规工具无法正确报告信息时使用。5. 实战问题排查与高级技巧汇编掌握了多种列举方法后我们面对的不再是“如何列出”而是“列出的结果不对劲怎么办”。下面这些是我在多年支持工作中积累的常见问题场景和解决技巧。5.1 常见异常场景与解决方案场景一列表中出现重复或幽灵打印机。现象在控制面板或命令列表中同一台物理打印机出现了多次名称可能略有不同如后缀有“副本”或端口不同。原因通常是因为多次使用不同方式添加如“添加打印机”向导搜索到多次或驱动程序安装不完整/冲突后残留。解决首先尝试删除所有重复的打印机队列。打开“设备和打印机”在菜单栏选择“文件”-“服务器属性”-“驱动程序”选项卡删除与该打印机对应的陈旧驱动。重启电脑或重启“Print Spooler”服务。重新使用正确的IP地址或USB连接添加打印机。场景二网络打印机在列表中显示为“脱机”或“错误”但实际网络通畅。现象Get-Printer显示状态为OfflinePing打印机IP地址是通的。原因Windows可能使用了错误的端口类型如WSD端口不稳定或打印机后台处理程序缓存了错误状态。解决删除现有的打印机。手动添加打印机选择“使用TCP/IP地址或主机名添加打印机”。在端口设置中务必取消勾选“查询打印机并自动选择要使用的驱动程序”然后从列表中选择一个正确的驱动。这个自动查询功能经常是网络打印机问题的元凶。更彻底的方案是在打印机属性-端口配置中创建一个新的“Standard TCP/IP Port”而不是使用WSD端口。场景三使用wmic或Get-Printer命令无输出或报错。现象命令行窗口卡住或返回访问被拒绝、RPC服务器不可用等错误。原因Windows Management Instrumentation (WMI) 服务或Print Spooler服务未运行或损坏权限不足尤其是PowerShell未以管理员运行。解决以管理员身份运行命令提示符或PowerShell。检查服务状态在服务services.msc中确保“Windows Management Instrumentation”和“Print Spooler”两个服务都处于“正在运行”状态。可以尝试重启它们。如果WMI服务损坏可以尝试在管理员CMD中运行winmgmt /verifyrepository检查并用winmgmt /salvagerepository尝试修复。这是一个较深层的操作需谨慎。5.2 自动化脚本与资产清点实战对于需要管理大量计算机的IT管理员手动每台电脑去查是不现实的。这里分享一个实用的PowerShell脚本框架用于远程或批量收集打印机信息。# 示例收集本机打印机信息并导出为详细CSV $Printers Get-CimInstance -ClassName Win32_Printer | Select-Object Name, {Name“DriverName”; Expression{$_.DriverName}}, {Name“PortName”; Expression{$_.PortName}}, {Name“Shared”; Expression{$_.Shared}}, {Name“ShareName”; Expression{$_.ShareName}}, {Name“Location”; Expression{$_.Location}}, {Name“Comment”; Expression{$_.Comment}}, {Name“PrinterStatus”; Expression{$_.PrinterStatus}}, {Name“WorkOffline”; Expression{$_.WorkOffline}}, {Name“Default”; Expression{$_.Default}} # 将状态代码转换为可读文本 $StatusMap { 1“其他”; 2“未知”; 3“空闲”; 4“正在打印”; 5“预热”; 6“停止打印”; 7“脱机”; 8“错误”; 9“忙”; 10“不可用” } foreach ($printer in $Printers) { $printer.PrinterStatus $StatusMap[[int]$printer.PrinterStatus] } $Printers | Export-Csv -Path “$env:USERPROFILE\Desktop\LocalPrinterInventory_$(Get-Date -Format ‘yyyyMMdd’).csv” -NoTypeInformation -Encoding UTF8 Write-Host “打印机清单已导出到桌面。” -ForegroundColor Green这个脚本使用了Win32_PrinterWMI类来获取最全面的信息并将数字状态码转换成了易懂的文字最后导出到桌面一个带有日期的CSV文件中。你可以将此脚本通过组策略、远程执行工具如PSExec或配置管理工具如SCCM, Ansible推送到域内所有电脑上执行并让它们将结果文件上传到共享服务器从而实现全公司打印机资产的自动化清点。5.3 驱动管理与冲突预防心得打印机问题大半与驱动有关。列出打印机后如何管理驱动是保持系统健康的关键。驱动存储位置系统级的打印机驱动通常存放在C:\Windows\System32\spool\drivers目录下。x64系统有x64和x32子文件夹分别存放64位和32位驱动。了解这个位置有助于在极端情况下手动清理文件。优先使用厂商官方驱动Windows Update提供的通用驱动可能功能不全或稳定性欠佳。尤其是对于多功能一体机打印、扫描、传真务必从打印机厂商官网下载完整的驱动包进行安装。安装顺序的玄学有时先连接USB线让系统自动搜索安装再运行官方安装程序会导致冲突。一个更干净的做法是先不要连接打印机直接运行厂商的安装程序当程序提示时再连接USB线或输入网络地址。让安装程序全程掌控驱动安装和端口配置过程成功率更高。“打印测试页”是试金石成功添加打印机后务必右键点击打印机选择“打印机属性”在“常规”选项卡点击“打印测试页”。如果测试页能正常打印说明驱动、端口、通信整个链路基本畅通。这是验证打印机是否真正“可用”的最直接方法。列出已安装的打印机这个操作本身并不复杂但它像一把钥匙打开了Windows打印子系统管理的大门。从图形界面的直观浏览到命令行的高效筛选再到系统底层的深度查询不同方法应对不同场景。对于普通用户记住“控制面板”里的“设备和打印机”以及“设置”里的相关选项就足够了。对于IT支持人员熟练使用Get-Printer和wmic printer命令并能解读其输出是必备技能。而对于系统管理员或开发者理解WMI查询和注册表结构则意味着具备了解决复杂问题和实现自动化管理的能力。下次再遇到打印机相关的疑难杂症时不妨先花一分钟用今天介绍的几种方法之一把系统的“打印机家底”摸清楚很多问题的根源往往就藏在这份清单的细节之中。
返回列表